c语言:为什么 do{*t++=*s++;}while(*s); 无法复制'\0'?

发布网友 发布时间:23分钟前

我来回答

4个回答

热心网友 时间:29分钟前

这个是在拷贝字符串吧。
首先要明确:【++ 自增运算符】的优先级大于 【* 取值运算符】
do{*t++=*s++;}while(*s); 相当于 : *t = *s; s++;t++;
当 *s='\0' 时, while 已经退出, *s 也就没法拷贝给 *t 了

热心网友 时间:27分钟前

C语言:复制函数是strcpy(目的字符数组名,源字符串)
注:其进行拷贝时,连同字符串后面的‘\0’一起拷到目的字符数组中!
希望对你有所帮助

热心网友 时间:29分钟前

\0
就是指asc码为0的NUll
while(0)是不执行的当然达不到要求

热心网友 时间:29分钟前

如果字符串s中放的是:abcd\0
....
那先将a放进去,看看b是不是\0
当把d放到t中时,就该while(*s)*s为\0 '\0'的ASCII码为0,,也就是while(0)
循环结束了,所以不行~
你需要手动补上:*t='\0';的一句~

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com