选择题
以下不能将s所指字符串正确复制到t所指存储空间的是( )。
A、
while(*t=*s){t++;s++;}
B、
for(i=0;t[i】=s[i];i++);
C、
do{*t++=*s++;} while(*s);
D、
for(i=0,j=0;t[i++]=s[j++];);
【正确答案】
C
【答案解析】
“do{*t++=*s++;}while(*s);”语句中,因为当“*s='\0'”时,“while(*s)”跳出循环,这样字符串结束标志'\o'没有复制给*t,造成了*t不完整。注意,*t++=*s++是先执行t=*s,然后才进行t=t+l,s=s+l。而选项B)、A)、D)都能将'\0',复制过去。
提交答案
关闭