【发布时间】:2015-04-25 17:19:15
【问题描述】:
有人看到这里的错误吗?我有其他解决方案。
int main()
{
char line[100], res[100], temp[20];
fgets( line, 100*sizeof(char), stdin);
int i, j, l;
for( i=strlen(line)-1; i>=0; i--)
{
if(line[i]==' ')
for(j=i+1, l=0; line[j]!=' ' && line[j]!='\0'; l++, j++)
temp[l]=line[j];
temp[++l]=' ';
temp[++l]='\0';
strcat(res, temp);
}
puts(res);
return 0;
}
【问题讨论】:
-
请告诉我们您实际看到的行为以及它与预期行为有何不同。
-
永远不要这样做
for( i=strlen(line)-1; i>=0; i--),你正在计算字符串的长度length的字符串次数,你应该知道strlen()循环遍历字符来计算它们。 -
strcat(res, temp);- 这不好。您永远不会将res[]设置为终止缓冲区,而strcat期望它是这样。所以寻找一个0字符,如果你(不)幸运,你会找到一个有足够空间来实际连接你的源字符串的字符。
标签: c string debugging reverse