Строка: во вводимом с клавиатуры тексте выбрать слова, заканчивающиеся согласной буквой, и вывести их на экран - C (СИ)
Формулировка задачи:
Есть задание :
Написать программу, которая во вводимом с клавиатуры тексте выберет слова, заканчивающиеся согласной буквой, и выведет их на экран.
Написал код, но при запуске, после введения строки программа зависает
Листинг программы
- #include <algorithm>
- #include <iostream>
- #include <cstring>
- #include <cstdio>
- #include <cctype>
- #include <vector>
- #include <string>
- #include <cmath>
- #include <queue>
- #include <deque>
- #include <set>
- #include <map>
- int main () {
- char* s[10000];
- int i,n = 0, k = 0;
- scanf("%c", &s);
- while (*s[i] != '/0'){
- if (int(*s[i]) == 32){
- if ((*s[i-1] != 'A') || (*s[i-1] != 'E') || (*s[i-1] != 'I') || (*s[i-1] != 'O') ||
- (*s[i-1] != 'U') || (*s[i-1] != 'a') || (*s[i-1] != 'e') || (*s[i-1] != 'i') ||
- (*s[i-1] != 'o') || (*s[i-1] != 'u')) {
- for (int j = k; j = i-1; j++){
- printf("%s", *s[i]);
- }
- }
- k = i + 1;
- }
- i++ ;
- }
- printf("%d", &n);
- system("pause");
- return 0;
- }
Решение задачи: «Строка: во вводимом с клавиатуры тексте выбрать слова, заканчивающиеся согласной буквой, и вывести их на экран»
textual
Листинг программы
- #include <stdio.h>
- #include <ctype.h>
- #include <string.h>
- #define VAL 100
- void fill_arr(char[], int, int);
- void print_consend(char[]);
- int main(void) {
- char arr[VAL] = {0};
- fill_arr(arr, VAL, '\n');
- print_consend(arr);
- return 0;
- }
- void fill_arr(char arr[], int number, int mark) {
- int i;
- for (i=0; mark != (arr[i]=getchar()) && i < number-1; i++)
- ;
- arr[i]=0;
- }
- void print_consend(char arr[]) {
- char *runner, *saver;
- int rc;
- char str[] = "bcdfghjklmnpqrstvwxz";
- runner = saver = arr;
- rc = 0;
- while (1) {
- switch (*(runner+rc)) {
- case '.':
- case ',':
- case '?':
- case '!':
- case ':':
- case ';':
- case ' ':
- if (strchr( str, tolower(*(runner+rc-1)))) {
- saver = runner+rc-1;
- while (runner<=saver)
- putchar(*(runner++));
- putchar('\n');
- }
- rc = 0;
- runner++;
- break;
- case '\0':
- if (strchr( str, tolower(*(runner+rc-1)))) {
- saver = runner+rc-1;
- while (runner<saver)
- putchar(*(runner++));
- }
- return;
- default :
- rc++;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д