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
ます。
従来の慣習は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;
}