文字配列を扱うより大きなプロジェクト用の関数を記述しようとしています。私が取り組んでいる現在の機能は、アルファベット文字のみを保存し、特殊文字(例:!#@ $?)とスペースを削除することになっています。私の現在の関数は動作しますが、何らかの理由でそれを実行すると、配列の最初の文字は常に削除されます。それはなぜですか?そして、代わりに最初の文字を保存するにはどうすればいいですか?配列関数は配列から最初の文字を削除します
#include <stdio.h>
int main(void)
{
char phrase[101];
printf("Enter a phrase to change:");
fgets(phrase, 101, stdin);
printf("original phrase: %s", phrase);
int i = 0, j = 0;
while(phrase[i] != '\0')
{
if(('A' <= phrase[i] && phrase[i] >= 'Z') ||
('a' <= phrase[i] && phrase[i] >= 'z'))
{
phrase[j] = phrase[i];
i++;
j++;
}
else
i++;
phrase[j] = '\0';
}
printf("new phrase: %s\n", phrase);
return 0;
}
あなたは頭の上にそれを釘付け、簡単な修正、ありがとう!:) – Ryan