StrCat不使用Single Char String - C.

Ins*_*Man -3 c

我正在使用下面的代码在我的字符串中添加一些"0"字符,但似乎存在问题并且程序将崩溃.一切似乎都是逻辑但我不知道问题出在哪里?

#include <stdlib.h>
#include <string.h>

int main()
{
    char *Ten; int i=0; Ten = malloc(12);
    Ten="1";
    for (i=0;i<10;i++)
        strcat(Ten,"0");

    printf("%s",Ten);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

Frx*_*rem 5

您声明Ten为指向字符串文字的指针.但是,您不能依赖于能够修改字符串文字,因此程序崩溃.

要解决此问题,您可以将其声明Ten为数组:

int main()
{
    char Ten[12]="1"; int i=0;

    for (i=0;i<10;i++)
        strcat(Ten,"0");

    printf("%s",Ten);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

请注意,您需要12个字节; 11表示字符,1表示终止NUL字符.