まず第一に、私の英語でごめんなさい、私はフランス人です。関数を書きたい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;
}
なぜそれが機能しないのかを理解するのを手伝ってもらえますか?