C语言 简单的练习题

2023-12-20 23:20:52
有5个网友回答
网友(1):

最后一行*p = '\0';可以省去,因为此时的*p与先前的*(p+end)说的应是同一位置的值,前面已将其赋值为'\0'了,但没有向前移位,所以要把移位的最后一位也设置为'\0',也就是说,你的理解只对了一半儿!
如果缺少最后一行的*p = '\0';会有一小段重复的子串.

网友(2):

重新移动了字符串结束的位置而已,举例说明:
源字符串src为" flyhorse loves 小梅"
1,执行到*(p+end)='\0'的时候,src就是" flyhorse"了;
2,执行了最后的*p='\0',src就是"flyhorse"了,否则src就是"flyhorse ";
(p指针的重定位操作就在p++,p一旦移位,字符串结束位置也需要移位)

网友(3):

'\0'表示字符串的终止。如果没有这个字符,就无法知道这个字符串是在什么地方结束的。

网友(4):

不是只读第一个单词么 ? 第1个单词和第2个单词之间不是用空格键隔开的么?所以只要读到空格键就行了,其他的都扔掉。。。。
char *p=&string;
if( *p !=‘ ’)
{
string str+=*p;
p++;
}

网友(5):

每个字符串都是\0结束了 如果没有他就会出现乱码