【发布时间】:2013-05-26 01:56:11
【问题描述】:
看下面的代码:
char chs[100] = "Hello World";
char token[100];
int pos = -1;
while((current = chs[++pos]) != '"'){
strcat(token, ¤t);
}
但输出是:
H\001e\001l\001l\001o\001 \001W\001o\001r\001l\001d
有什么想法吗?
【问题讨论】:
-
@mbratch 输出应该是 Hello World
-
@Foredoomed 您想去掉字符串文字周围的引号?引号实际上并不是字符串的一部分!也许您应该从阅读book 开始。
-
@Foredoomed,但这只是应该是从
chs到token的字符串副本吗?如果是这样,那么这就是strcpy的用途。你只需做strcpy(token, chs);就可以了。不需要循环。还是有其他目的?如果你想使用strcat,它要求两个字符串参数都以零结尾。所以你至少需要设置token[0] = '\0'在循环之前开始,正如我所提到的。