
求解释C语言do{*t++=*s++;}while(*s);这里为什么不能将S所知的字符串复制给T?
3个回答
展开全部
void strcpy(char t[],char s[]) {
while(*t++ = *s++);
}
以上就是一个完整的字符串复制函数,不再需要其他操作。在下面的语句中,
do {
*t++ = *s++;
}while(*s);
复制到最后一个字符后,完成 t++ 和 s++操作,此时s指向'\0',从而结束循环,也就是说,该过程没有将结束符'\0'写到t中。
while(*t++ = *s++);
}
以上就是一个完整的字符串复制函数,不再需要其他操作。在下面的语句中,
do {
*t++ = *s++;
}while(*s);
复制到最后一个字符后,完成 t++ 和 s++操作,此时s指向'\0',从而结束循环,也就是说,该过程没有将结束符'\0'写到t中。
更多追问追答
追问
在最后一个字符的时候,不是先进行判断了再++?
追答
do - while循环是先执行,后判断。这样写就可以完成复制操作
do {
*t++ = *s++;
}while(*s);
*t = '\0'; // 加这个操作就行了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询