C++输入不定长字符串

lean要做一个脚踏实地的人。

博客第一篇要从一个在大家看来low到爆的基础知识:C++输入不定长字符串写起。

昨天去华为面试,被坑了一小下,下面的两个方法,大家可以放心使用。

1.在头文件中添加<string>

string str ;

cin>>str;

此时的str不可包含空格,制表符等。因为cin这个函数的性质,遇到/t /s /n,它的栈就会弹出结束,str在最后加上\0。

 至于sezeof(str) 在linux下,输出的永远都是4 ,我想应该是str的(char*)类型的长度.如果想获取其长度,由于其

会自动在后面加上\0,因此可以使用for循环获得大小。当然,可以直接使用str[N]来得到N处的值。

2.

#define N 50

#define M 100

char str[M];

cin.getline(str,N);

N是限制字符串的长度。这样做的好处就是可以输入空格哦,但是遇到'\n'他就消停啦!这里的

sizeof(M)就是100.获取他有效长度也可以用方法1中的循环,当遇到str[i] == '\0'算为停止.

以上两个小例子希望能解决大家输入字符串的问题。

以后的代码我争取截图发上来,显得工整一些。

posted on 2014-03-23 00:24  Dennis‘s  阅读(5531)  评论(1)    收藏  举报