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

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

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

Напечатать все слова из текстового файла, состоящие только из латинских букв Как изменить условие в функции Count, чтобы программа не печатала слова, содержащие цифры?
Листинг программы
  1. #define DELIMITERS ".,:;?!\n\t"
  2. #define N 1024
  3. int Count(char *s)
  4. {
  5. int i,count;
  6. for(i=count=0;s[i]!='\0';i++)
  7. {
  8. if (isalpha(s[i]))
  9. count++;
  10. }
  11. return count;
  12. }
  13. int ReadWords(char *fname)
  14. {
  15. FILE *f;
  16. char s[N],*word;
  17. int i,j,flag[256]={0};
  18. if ((f=fopen(fname, "r"))==NULL)
  19. return 1;
  20. for(i=0;DELIMITERS[i];i++)
  21. flag [DELIMITERS[i]]=1;
  22. while (fgets(s,N,f)!=NULL)
  23. {
  24. for(i=0;s[i]&&flag[s[i]];i++)
  25. ;
  26. while(s[i])
  27. {
  28. word=s+i;
  29. while(s[i]&&!flag[s[i]])
  30. i++;
  31. j=i;
  32. while (s[i]&&flag[s[i]])
  33. i++;
  34. s[j]='\0';
  35. if (Count(word))
  36. puts(word);
  37. }
  38. }
  39. fclose(f);
  40. return 0;
  41. }
  42. int main()
  43. {
  44. ReadWords("d:\\a.txt");
  45. return 0;
  46. }

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

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

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

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

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

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


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

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

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы