c++ cin.get()可以跟字符数组吗?怎么用?
charcStr[20]={0};cin.get(cStr,20);cout<<cStr<<endl;//最后一个字符留作\0为啥最后一个字符会留作\0还有第一句语句的意...
char cStr[20]={0};
cin.get(cStr,20);
cout<<cStr<<endl;//最后一个字符留作\0
为啥最后一个字符会留作\0
还有第一句语句的意思是全部初始化为0? 展开
cin.get(cStr,20);
cout<<cStr<<endl;//最后一个字符留作\0
为啥最后一个字符会留作\0
还有第一句语句的意思是全部初始化为0? 展开
1个回答
展开全部
1、char cStr[20]={0};这句只是一个数组初始化,只初始化了第一个元素。建议用
memset(cStr,0,sizeof(char)*20);简单明了。
2、C语言中字符和字符串的区别:
char cStr='a'; 存储的是a的ASCII码。
char cStr="a" 存储时在a后面会自动加上\0,作为字符串结束的标志。其实就是0。这个工作最好自己完成。这时memset()函数的优势就出来了,它已经把数组全部赋为0了。
3、稍微有经验的程序员都知道,字符数组的大小最好要比你接受字符的个数大一个,最后一个元素放\0。
宗上,程序可以改为:
char cStr[21];
memset(cStr,0,sizeof(char)*21);
cin.get(cStr,20);
cout<<cStr<,endl;
memset(cStr,0,sizeof(char)*20);简单明了。
2、C语言中字符和字符串的区别:
char cStr='a'; 存储的是a的ASCII码。
char cStr="a" 存储时在a后面会自动加上\0,作为字符串结束的标志。其实就是0。这个工作最好自己完成。这时memset()函数的优势就出来了,它已经把数组全部赋为0了。
3、稍微有经验的程序员都知道,字符数组的大小最好要比你接受字符的个数大一个,最后一个元素放\0。
宗上,程序可以改为:
char cStr[21];
memset(cStr,0,sizeof(char)*21);
cin.get(cStr,20);
cout<<cStr<,endl;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询