问题
单项选择题
以下不能将s所指字符串正确复制到t所指存储空间的是______。
A.do{*t++=*s++;}while(*s);
B.for(i=0; t[i]=s[i]; i++);
C.while(*t=*s){t++; s++;}
D.for(i=0, j=0; t[i++]=s[j++]; );
答案
参考答案:A
解析: do{*t++=*s++; }while(*s);不能因为当*s=’\0’时,while(*s)跳出循环,这样字符串结束标志’\0’没有复制给*t,造成*t不完整。注意,*t++=*s++是先执行t=*s,然后才进行t=t+1, s=s+1。B、C、D都能将’\0’复制过去。