Определить каких слов в тексте больше: состоящие только из слов или только из букв - C (СИ)

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

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

определить каких слов в тексте больше: состоящие только из слов или только из букв??? я не могу сделать проверку на наличие в слове и букв и цифр!
#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#define N 100
 
int main()
{ 
char text[N];
size_t i = 0;
size_t wdigit = 0;    //öèôðû
size_t walpha = 0;   //ГЎГіГЄГўГ»
printf("\n Ââåäèòå ñòðîêó: \n");
gets(text);
 
/*ïðîâåðêГ* Г*Г* Г*Г*ëè÷èå ГЎГіГЄГў ГЁ öèôð*/
 
while (text[i])
 {
  if(isalpha(text[i])&&!isalnum(text[i + 1])) walpha++;
  else
  if(isdigit(text[i])&&!isalnum(text[i + 1])) wdigit++;
  i++;  
  
 }
 
 /*âûâîä ðåçóëüòГ*ГІГ**/
printf("\n Ñëîâ èç áóêâ:  %d \n",walpha);
printf("\n Ñëîâ èç öèôð:  %d \n", wdigit);
 
if(walpha > wdigit)
 
 printf("\n Ñëîâ èç áóêâ áîëüøå.");
    else
 printf("\n Ñëîâ èç öèôð áîëüøå.");
  
getch();
}

Решение задачи: «Определить каких слов в тексте больше: состоящие только из слов или только из букв»

textual
Листинг программы
char s[64];
fgets(s, 64, stdin);
 
if(strlen(s) == strspn(s, "abcdefghigklmnopqrstuvwxyz")){
  // слово сосоит только из букв
}
 
if(strlen(s) == strspn(s, "012345678")){
  // слово состоит только из цифр.
}
 
if(strlen(s) == strspn(s, "abcdefghigklmnopqrstuvwxyz012345678")){
  // слово состоит из букв и цифр
}

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

В этом коде реализована функция, которая принимает строку в качестве входного параметра и проверяет, состоит ли она только из букв, только из цифр или из букв и цифр. Список действий:

  1. Создается массив символов s размером 64.
  2. Ввод строки с помощью функции fgets в массив s.
  3. Проверка длины строки на равенство длине строки без пробелов с помощью функции strlen и функции strspn.
  4. Если длина строки равна длине строки без пробелов, значит строка состоит только из букв.
  5. Если длина строки равна длине строки без пробелов, значит строка состоит только из цифр.
  6. Если длина строки равна длине строки без пробелов, значит строка состоит из букв и цифр. Список переменных и их значений:
  7. s - массив символов для ввода строки.
  8. fgets(s, 64, stdin) - функция для ввода строки в массив s.
  9. strlen(s) - функция для определения длины строки.
  10. strspn(s, abcdefghigklmnopqrstuvwxyz) - функция для определения длины строки без пробелов, состоящей только из букв.
  11. strspn(s, 012345678) - функция для определения длины строки без пробелов, состоящей только из цифр.
  12. strspn(s, abcdefghigklmnopqrstuvwxyz012345678) - функция для определения длины строки без пробелов, состоящей из букв и цифр.

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


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

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

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