visual studio中的'Ì'或'\ 0'为空

时间:2015-04-30 13:03:02

标签: c arrays string char

我在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;
}

1 个答案:

答案 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;
}