-3

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

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

为什么这不起作用?

4

4 回答 4

7

您的代码将永远无法工作

  t[i]=t[i];

几乎什么都不做。

于 2013-03-05T11:48:13.763 回答
5

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

char temp = t[j];
t[j] = t[i];
t[i] = temp;

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

于 2013-03-05T11:49:08.630 回答
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;
于 2013-03-05T11:50:19.067 回答
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;
}
于 2013-03-05T11:52:13.417 回答