C反转字符串不起作用

时间:2014-02-27 15:02:20

标签: c string reverse

有人可以查看此代码并检查它是否可以正常工作

它应该反转输入的字符串(例如“hello”应该变成“olleh”)

void stringReverse (char string1[])
{

    int length, i, j, k;
    char tmp;

    length = strlen(string1);
    j = length - 1;
    printf("Length: %i",length);
    for (i = 0; i < length; i++)
    {
        tmp = string1[j];
        string1[j] = string1[i];
        string1[i] = tmp;
        j--;
    }
}

2 个答案:

答案 0 :(得分:8)

它正如你告诉它工作的那样工作。您的周期必须最多为length/2,而不是length

答案 1 :(得分:0)

char* strrev(char* s)  {  
  char* h = s;    
  char* t = s; 
  char ch;  `
  while(*t++){};  
  t -= 2; 
  while(h < t){  
    ch = *h;  
    *h++ = *t;    /* h向尾部移动 */  
    *t-- = ch;    /* t向头部移动 */  
  }
  return(s);
}

功能:strrev。这是实施。

希望这可以帮到你。