Напечатать все слова из текстового файла, состоящие только из латинских букв - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Напечатать все слова из текстового файла, состоящие только из латинских букв Как изменить условие в функции Count, чтобы программа не печатала слова, содержащие цифры?
#define DELIMITERS ".,:;?!\n\t"
#define N 1024
 
int Count(char *s)
{
    int i,count;
    for(i=count=0;s[i]!='\0';i++)
        {
            if (isalpha(s[i]))
                count++;
        }
    return count;
}
 
int ReadWords(char *fname)
{
    FILE *f;
    char s[N],*word;
    int i,j,flag[256]={0};
    if ((f=fopen(fname, "r"))==NULL)
        return 1;
    for(i=0;DELIMITERS[i];i++)
    flag [DELIMITERS[i]]=1;
    while (fgets(s,N,f)!=NULL)
    {
        for(i=0;s[i]&&flag[s[i]];i++)
            ;
        while(s[i])
        {
            word=s+i;
            while(s[i]&&!flag[s[i]])
                i++;
            j=i;
            while (s[i]&&flag[s[i]])
                i++;
            s[j]='\0';
            if (Count(word))
                puts(word);
        }
    }
    fclose(f);
    return 0;
}
 
int main()
{
    ReadWords("d:\\a.txt");
    return 0;
}

Решение задачи: «Напечатать все слова из текстового файла, состоящие только из латинских букв»

textual
Листинг программы
#include <stdlib.h>
 
bool f(char *s)
{
    while(*s)
        if (!isalpha(*s++)) 
            return false;
    return true;
}

Объяснение кода листинга программы

В данном коде:

  1. Подключается стандартная библиотека C stdlib.h.
  2. Определяется функция f, которая принимает в качестве аргумента указатель на строку (char *s).
  3. В функции происходит проверка каждого символа строки на принадлежность к классу букв (isalpha). Если символ не является буквой, то функция возвращает false. Если все символы строки являются буквами, то функция возвращает true.
  4. В тело функции помещён цикл while, который выполняется до тех пор, пока не будет достигнут конец строки (указатель на '\0').
  5. Если символ не является буквой, то функция возвращает false и прерывает выполнение.
  6. Если все символы строки являются буквами, то функция возвращает true.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы