Определить каких слов в тексте больше: состоящие только из слов или только из букв - 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")){ // слово состоит из букв и цифр }
Объяснение кода листинга программы
В этом коде реализована функция, которая принимает строку в качестве входного параметра и проверяет, состоит ли она только из букв, только из цифр или из букв и цифр. Список действий:
- Создается массив символов s размером 64.
- Ввод строки с помощью функции fgets в массив s.
- Проверка длины строки на равенство длине строки без пробелов с помощью функции strlen и функции strspn.
- Если длина строки равна длине строки без пробелов, значит строка состоит только из букв.
- Если длина строки равна длине строки без пробелов, значит строка состоит только из цифр.
- Если длина строки равна длине строки без пробелов, значит строка состоит из букв и цифр. Список переменных и их значений:
- s - массив символов для ввода строки.
- fgets(s, 64, stdin) - функция для ввода строки в массив s.
- strlen(s) - функция для определения длины строки.
- strspn(s,
abcdefghigklmnopqrstuvwxyz
) - функция для определения длины строки без пробелов, состоящей только из букв. - strspn(s,
012345678
) - функция для определения длины строки без пробелов, состоящей только из цифр. - strspn(s,
abcdefghigklmnopqrstuvwxyz012345678
) - функция для определения длины строки без пробелов, состоящей из букв и цифр.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д