有人在这看到错误吗?我有其他解决方案。
eigval
答案 0 :(得分:0)
l 和 j 刚刚初始化' 强>
Witch在第一次迭代中不会出现这种情况,其中 line [i] 将' \ n'
答案 1 :(得分:0)
不需要for
和if
循环。由于数组遵循基于0的索引,i
应该从0
到strlen(line)-1
取值,因此j=i+1
应该是j=i
(第1行)。字符串应该为空终止 - 第2行。此外,l
已在for loop
中递增,因此不使用预增量,而是使用后增量(或根本不使用它)(第3行) )。
#include<stdio.h>
#include<string.h>
int main()
{
char line[100], res[100], temp[20];
fgets( line, 100*sizeof(char), stdin);
int i, j, l=0;
res[0]='\0'; //line 2
i=strlen(line)-1;
for(j=i, l=0; line[j]!=' ' && line[j]!='\0'; l++, j--) //line 1
{temp[l]=line[j];
}
temp[l++]=' '; //line 3 (or temp[l]=' ')
temp[l++]='\0';
strcat(res, temp);
puts(res);
return 0;
}