Я пытаюсь написать функцию для большого проекта, который состоит из работы с массивами символов.Текущая функция, над которой я работаю, должна сохранять только алфавитные символы и удалять любые специальные символы (например,! # @ $?) И пробелы.Моя текущая функция работает, но по какой-то причине, когда я ее запускаю, первый символ массива всегда удаляется.Почему так и как я могу сделать так, чтобы вместо этого был сохранен первый символ?
#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;
}