我需要使用C中的一些循环函数来反转字符串 我有这段代码:
char *reverse(char *t)
{
int length = strlen(t);
for(int i= (length-1);i>=0;i--)
t[i]=t[i];
return t;
}
为什么这不起作用?
答案 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;
}