为什么这段代码不能复制两个在C中工作的字符串?

Waf*_*les 0 c string

#include <stdlib.h>

main()
{
    char string[23] = "2345,";

    char aString [sizeof string];

    int i = 0;

    while((aString[i] = string[i]) != ',')
        ++i;

    char *ts = aString;

    printf("%s\n", aString);
}
Run Code Online (Sandbox Code Playgroud)

我想将除逗号之外的所有内容从字符串复制到aString.但是,这不起作用 - 我用逗号打印出一个字符串,最后是一些垃圾.谁能告诉我这里我做错了什么?

好的,这很好.但是,编译后我收到此错误:

警告:内置函数'printf'的不兼容隐式声明

据我所知,我对printf没有任何错误.所以有人能告诉我发生了什么吗?

fra*_*kus 6

你需要aString[i]=0在while循环后添加一次,C字符串终止0.