因为 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()函数作用同
适用范围:
- 字符串%s或者sring
- vector类型的长度
- 数组不可以
#include<iostream> #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> using namespace std; int main(){ int a[]={1,2,3,4,5}; char b[]="hello123" ; string c="hello123" ; int len=sizeof(a)/sizeof(a[0]); printf("计算整型数组int a[]={1,2,3,4,5}:\n"); printf("sizeof(a[0])计算整型数组a第一个字符所占内存大小:%d\n",sizeof(a[0])); printf("sizeof(a)计算整个整型数组a所占内存大小(int 4):%d\n",sizeof(a)); printf("sizeof(a)/sizeof(a[0])计算整型数组a的元素个数为:%d\n",len); printf("----------------------------------------------------------------------------\n"); printf("计算整型数组char b[]=“hello123” :\n"); printf("sizeof(b[0])计算字符数组b 第一个字符所占内存大小为:%d\n",sizeof(b[0])); printf("sizeof(b)计算整个字符数组内存大小(char 1 +“0”):%d\n",sizeof(b)); printf("strlen(b)计算整个字符数组的长度(char 1 无“0”):%d\n",strlen(b));//cstring printf("----------------------------------------------------------------------------\n"); printf("计算字符串string c=“hello123” :\n"); printf("sizeof(c[0])计算字符串第一个字符所占内存大小:%d\n",sizeof(c[0])); printf("sizeof(c)计算整个字符串长度所占内存大小:%d\n",sizeof(c)); printf("c.length()计算字符串长度,不可字符数组( 无“0”):%d\n",c.length()); printf("c.size() 计算字符串长度,不可字符数组( 无“0”):%d\n",c.size()); return 0; }