首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在字符串中到底什么时候要加'\0',该如何解决

2012-04-13 
在字符串中到底什么时候要加\0这个我就是搞不清楚,好像从网上找的都说法不一.char*s1chars2[55]是不是

在字符串中到底什么时候要加'\0'
这个我就是搞不清楚,好像从网上找的都说法不一.
char   *s1   ;
char   s2[55]   ;
是不是给s2赋值后要加 '\0 '的
请指教


[解决办法]
是不是给s2赋值后要加 '\0 '的
===============================
char s2[55]= "string1 "可以的。。
[解决办法]
就是你一个一个对字符串赋值后最后就应该给它加上 '\0 '
比如 char s2[55];
char ch;
int i;
for ( i=0; i <55; i++ )
s2[i] = ch;
s2[i] = '\0 ';
puts( s2 );
[解决办法]
整体输入字符串时自动加了\0不用自己添加 如gets(a),cin> > a
单个输入时需在最后加\0 如cin> > a[i]
[解决办法]
情况很多 不能一概而论的,比如char a[] = "sdfaf ";这就不用加

比如strcpy(str, "asdf ");这就要再加

具体来说比较麻烦,一般初始化是不用加 '\0 '的,自动会给你加的,后来给的就要加的一般

很难总结,看到才知道呵呵 顶下
[解决办法]
forever
[解决办法]
类似于这种:
char *p= "hello ";
char a[]= "hello "

都自动加上了\0,并且a[]是占了6个字节,也就是说一直到a[5]都有值,最后一位是\0

类似于这种:
char a[5]={ 'h ', 'e ', 'l ', 'l ', 'o '}
这就没有\0,但数组里也是hello,可是在调用一些函数的时候,例如strlen(a)就会出问题,因为a没有用\0作结尾,strlen找不到结束点,可能就一直往下找下去,最后弄出一堆垃圾
[解决办法]
字符串赋值的话在末尾会自动加上‘\0’的
[解决办法]
如果初始时是不要你加的,自动加的
只是要注意下标

热点排行