火龙信奥
  • 首页
  • 课程
  • 题库
  • 打卡
    • 代码对战
    • 快速对战
  • 题单
  • 团队
  • 荣誉墙
  • 商城
  • 登录 / 注册

fgets

作者: 作者的头像   huolong , 时间:2024-09-07 10:44:29 , 所有人可见, 阅读  12

fgets(a, 110, stdin);
int len1 = strlen(a); //会多读入一个\n

如何去掉:
if(a[len1-1] == '\n'){
    //cout << "dddddd";
    a[len1-1] = '\0';
}

拓展知识:

因为  cin 和 scanf读入字符串时遇到空格就停止了。

读入一行到char 里面的话

1.0 用fgets(名字,大小,stdin);

    char a[101];
    fgets(a, 110,stdin);
2.0 getline(cin,定义的名字)读到string 里面

    string a;
    getline(cin,a);
 3.0 用cin.getline

     char a[105];
    cin.getline(a,105);//需要注意cin.getline()会把换行符取出删除,不影响下一次读入!
想要从第几个开始在后面加减数字

char a[100];
scanf("%s",s+2);//表示从第二位开始接受
cout<<s+2<<endl;//表示从第二位开始输出
 注意补充一点:string 类型不能用scanf来输入,可以用printf来输出,只能用cin来输入

string s;
cin>>s;
printf("%s",s.c_str());
用scanf来输入char类型的,不能用&


char a[100];
scanf("%s",a);//正确输入

scanf("%s",&a);//错误输入

//如果是单个字符就要&
char n;
scanf("%c",&n);
关于sizeof(a)、strlen(a)、a.length()、a.size()
**sizeof()**返回一个对象或者类型所占的内存字节数(获取内存空间的大小)

适用范围:(1)字符串  (2)字符、整型等各种数组,(3)int、flooat类型占的字节数

记住头文件是cstring,string不可以

strlen只能够计算字符串的长度,其他数组不可以

适用范围:(1)字符串%s(2)字符数组

注意:计算长度不包括“\0”,遇到就停止

记住头文件是cstring,string不可以

**a.length()**计算字符串(string)变量的函数 ,字符数组不可以 ,计算长度也不包括“\0”

适用范围:(1)字符串%s或者sring

注意:计算长度不包括“\0”

a.size()是string类定义的一个返回字符串大小的函数。

获取字符串长度时与length()函数作用同


—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com

©2026加盟我们 | 关于我们 | ACM课程 | 常见问题 | 成果墙 | 评测记录 | 浙ICP备2021013995号
在线画图 | OI WIki | 打字练习
火龙信奥
请输入登录信息


请完成安全验证
验证码底图 滑块
向右拖动滑块完成验证
请输入用户名 / 绑定的手机号码



请输入注册信息(手机号验证码注册)





验证码5分钟有效,60秒内不可重复获取,每日最多3次

微信登录

微信登录二维码

正在生成二维码...

账号已过期,请续期。
去续期

绑定手机号

📱

为了更好地保护您的账号安全,享受完整的平台服务

请您尽快绑定手机号码