strcat,字符串连接的问题,笔试题目。
今天笔试中有这么一题,想不通,不知道怎么解答,题目是不是错了?
字符串连接,字符串s2连接到字符串s1上,形成新的字符串,新字符串首指针为s1;
void strcat(char *s1,char *s2)
{
while(*s1 != '\0 ')___( 1 )_____;
_____( 2 )______;
for(;___( 3 )___;s1++,s2++);
}
在(1),(2),(3)处填空
[解决办法]
void strcat(char *s1,char *s2)
{
while(*s1 != '\0 ')s1++;
;
for(;(*s1 = *s2) != '\0 ';s1++,s2++);
}
[解决办法]
楼主值传递不会改变原来参数的值
void strcat(char *s1,char *s2)
{
while(*s1 != '\0 ')s1++;
;
for(;(*s1 = *s2) != '\0 ';s1++,s2++);
}
s1和s2都被编译器当成临时的栈变量
s1++加的只是这个临时指针,而传入的那个指针是不会被改变的