函数在C中返回反向字符串

时间:2013-03-05 11:47:00

标签: c reverse

我需要使用C中的一些循环函数来反转字符串 我有这段代码:

char *reverse(char *t)
{
    int length = strlen(t);
    for(int i= (length-1);i>=0;i--)
       t[i]=t[i];
    return t;
}

为什么这不起作用?

4 个答案:

答案 0 :(得分:7)

以来,您的代码将无法运行
  t[i]=t[i];

几乎什么都不做。

答案 1 :(得分:5)

它不起作用,因为t[i] = t[i]是重言式。您可能需要一个额外的计数器并执行类似

的操作
char temp = t[j];
t[j] = t[i];
t[i] = temp;

一个计数器从0转到length/2,另一个从length-1转到length/2

答案 2 :(得分:3)

传统做法是交换两个数组..我在学校实践过它:)希望有所帮助

int length = strlen(t);
    /*declare a new array t2*/
    for(int i= 0;i<=length-1;i++)
       t2[i]=t[length -1];
    return t2;

答案 3 :(得分:2)

这应该有效:

int right = strlen(s);
int middle = end / 2;
--right;

for (int left = 0; left <= middle; ++left, --right)
{
   char t = s[left];
   s[left] = s[right];
   s[right] = t;
}