В каждом слове строки удалить все последующие вхождения первого символа этого слова - C (Си)

Словом считать любую последовательность, содержащую только русские и латинские буквы. Разделители между словами и их количество может быть любым. В каждом слове строки удалить все последующие вхождения первого символа этого слова.

Буду благодарен тем, кто поможет.

Получилось только написать код, который берёт самый первый символ строки и во всех последующих словах удаляет его.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <clocale>
#include <string.h>
 
void Delete_Symbol(int len, char* str, char* result) {
    printf("Введите текст (на английском):\n"); fgets(str, len, stdin);
    char symbol = str[0];
    result[0] = symbol;
    for (int i = 0, j = 1; i < len; i++) {
        if (str[i] != symbol) {
            result[j++] = str[i];
        }
    }
    printf("Готовый текст: %s", result);
}
 
int main() {
    setlocale(LC_ALL, "rus");
    const int len = 100;
    char str[len];
    char result[len];
    Delete_Symbol(len, str, result);
}

Ответы (1 шт):

Автор решения: MBo

Попробуйте при проходе по строке хранить состояние state, начальное 0

Если состояние 0, и встретили букву (isalpha), то запоминаете букву и делаете state=1

Если state==1 и встретили не букву, то меняете state на 0, иначе смотрите, не совпадает ли буква с запомненной.

→ Ссылка