我在visual studio中编写代码并且在算法中似乎是正确的但是
但是行不通!我不知道为我的代码添加了Ì
( - 52)或\0
void strcat(char *destin, char *source){
while (*destin != '\0')
destin++;
while (*source != '\0')
{
*destin = *source;
destin++;
source++;
}
*destin = '\0';
}
main(){
char s1[100];
strcat(s1, "salam");
strcat(s1, "hello");
strcat(s1, "ahlan");
strcat(s1, "keifolhal");
printf("%s", s1);
return 0;
}
答案 0 :(得分:1)
您忘记将终止零放在源数组中。写
char s1[100];
s1[0] = '\0';
或
char s1[100] = { '\0' };
或
char s1[100] = "";
或
char s1[100] = { "" };
最后三个声明是等效的。
函数本身可以按以下方式编写
char * strcat( char *destin, const char *source )
{
char *p = destin;
while ( *p != '\0' ) p++;
while ( *p++ = *source++ );
return destin;
}