1

まず第一に、私の英語でごめんなさい、私はフランス人です。関数を書きたいmy_revstr. この関数は文字列を逆にしますが、テストすると機能せず、コンソールが起動してクラッシュします。

文字列を逆にするには、反対の文字を交換します。例: の文字列を8 chars 0-7, 1-6, 2-5, 3-4. 私はいくつかの関数を使用します:、、my_strlen (return the lenght of the string)このmy_swap (swap the values)関数は機能します。コードは次のとおりです。

char *my_revstr(char *str)
{
int i;
int n;

i = my_strlen(str);
if (i%2 == 1) /* odd str*/
{
    i = i/2 - 1;
    n = i + 2;
    while (i >= 0)
    {
        my_swap(str + i, str + n);
        i = i - 1;
        n = n + 1;
    }
}
else
{
    i = i / 2 - 1;
    n = i + 1;
    while (i >= 0)
    {
        my_swap(str + i, str + n);
        i = i - 1;
        n = n + 1;
    }
}
}

そして、ここにテストがあります:

int main()
{
my_putstr(my_revstr("Bonjour"));
return 0;
}

なぜそれが機能しないのかを理解するのを手伝ってもらえますか?

4

1 に答える 1