我需要使用 C 中的一些循环函数来反转字符串
我有这个代码:
char *reverse(char *t)
{
int length = strlen(t);
for(int i= (length-1);i>=0;i--)
t[i]=t[i];
return t;
}
为什么这不起作用?
您的代码将永远无法工作
t[i]=t[i];
几乎什么都不做。
它不起作用,因为它t[i] = t[i]
是一个重言式。您可能想要一个额外的计数器并执行类似的操作
char temp = t[j];
t[j] = t[i];
t[i] = temp;
一个计数器从0
到length/2
,另一个从length-1
到length/2
。
常规做法是交换两个数组。我在学校练习过:) 希望它有所帮助
int length = strlen(t);
/*declare a new array t2*/
for(int i= 0;i<=length-1;i++)
t2[i]=t[length -1];
return t2;
这应该有效:
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;
}