Написать код - C (СИ)
Формулировка задачи:
Ввести фамилию, имя и отчество как одно текстовое данное. Определить длину данного и
количество букв "а" в нем. Решить задачу двумя способами:
а) используя функции из библиотеки string.h;
б) рассматривая введенный текст как массив символов.
Вывести фамилию и количество букв в имени.
Решение задачи: «Написать код»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <string.h> #define N 80 #define DELIM " ,.?! " void withoutString(char* ); void fast(char* ); int main() { char str[N]; int i = 0, len = 0, count = 0, n; system("chcp 1251 > nul"); puts("KushnyrukMariaViktorivna:"); while((str[i] = getchar()) != '\n'){ len++; if(str[i] == 'а' || str[i] == 'А') count++; i++; } str[i] = '\0'; printf("%d %d\n \'a\'\n", len, count); puts("1"); while(1 != scanf("%d", &n) || (n != 1 && n != 2)){ puts("Неправильный ввод данных!Попробуйте снова."); getchar(); } if(n == 2) withoutString(str); if(n == 1) fast(str); return 0; } void withoutString(char* p) { char delim[] = " \t\n,.?!;:", *first, *last; int j, flag = 0, sym = 1, count = 0; for(count = 0; *p; p++, sym = 1){ for(j = 0; delim[j]; j++) if(*p == delim[j]) sym = 0; if(sym){ if(!flag){ first = p; flag = 1; } } else{ if(flag){ last = p; flag = 0; if(!count){ puts("Kushnyruk:"); while(first < last) putchar(*first++); putchar('\n'); } if(count == 1){ printf("%d n", last - first); exit(0); } count++; } } } } void fast(char* str) { char* p; int count; for(p = strtok(str, DELIM), count = 0; p; p = strtok(NULL, DELIM), count++){ if(!count) printf("\nKushnyruk: %s", p); else{ printf("%d %d\n", strlen(p)); exit(0); } } }
Объяснение кода листинга программы
- Ввод строки с помощью функции getchar() до тех пор, пока не будет введен символ новой строки.
- Вычисление длины строки и количества вхождений символов 'а' и 'А'.
- Вывод результатов на экран.
- Ввод числа от 1 до 2 с помощью функции scanf().
- Если введено 1, то вызывается функция withoutString(), если 2 - функция fast().
- Функция withoutString() принимает строку и разделяет ее на подстроки, используя в качестве разделителя пробел, таб, новую строку, запятую, точку, восклицательный и вопросительный знаки.
- Результат выводится на экран.
- Функция fast() принимает строку и разделяет ее на подстроки с помощью функции strtok().
- Результат выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д