-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-1になりlength/2ます。

于 2013-03-05T11:49:08.630 に答える
3

従来の慣習は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;
于 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 に答える