用于反转字符串的C代码

时间:2015-04-25 17:19:15

标签: c string debugging reverse

有人在这看到错误吗?我有其他解决方案。

eigval

2 个答案:

答案 0 :(得分:0)

line [i] =='

l j 刚刚初始化'

Witch在第一次迭代中不会出现这种情况,其中 line [i] ' \ n'

答案 1 :(得分:0)

不需要forif循环。由于数组遵循基于0的索引,i应该从0strlen(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;
}