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