Найти и напечатать все слова, которые оканчиваются на заданную букву - C (СИ)
Формулировка задачи:
Подскажите, что упустил. Не могу понять, поч не работает. Дана символьная строка, в которой слова перечислены через точку с запятой, а общая длина меньше или равна 80-ти. Найти и напечатать все слова, которые оканчиваются на заданную букв
#include<stdio.h> #include<conio.h> #include<string.h> int lastsym(char*Temp, char c) { int l; l=strlen(Temp); if(Temp[l-1]==c) return1; return 0; } main() { char c,*Temp, s[80]; char Znak[]=";"; clrscr(); printf("stroka"); gets(s); printf("\nvvedite simbol"); scanf("%c",&c); Temp=strtok(s,Znak); if(lastsym(Temp,c) do{ printf("\n slovo - %S",Temp); Temp=strtok(NULL,Znak); }while(Temp!=NULL); getch(); }
Решение задачи: «Найти и напечатать все слова, которые оканчиваются на заданную букву»
textual
Листинг программы
#include <stdio.h> #include <string.h> int main(void) { char str[80]; char* t; char bukva[1]; printf("\nVvedite bukvu:\n"); gets(bukva); printf("\n"); printf("\nVvedite stroku:\n"); gets(str); t=strtok(str,";"); printf("\n"); while (t != NULL) { if(t[strlen(t)-1] == *bukva) { printf("\nSlovo: %s",t); } t = strtok (NULL, ";"); } printf("\n"); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены три переменные: str, t, bukva.
- Переменная str является массивом символов, в который будет помещена строка.
- Переменная t является указателем на первый символ подстроки, найденной в строке str.
- Переменная bukva является массивом символов, в который будет помещена последняя введенная пользователем буква.
- Выводится приглашение для ввода буквы.
- Вводится буква.
- Выводится приглашение для ввода строки.
- Вводится строка.
- Строка разбивается на подстроки, разделенные точкой с запятой.
- В цикле выводятся все подстроки, которые заканчиваются на введенную букву.
- В конце программы выводится символ новой строки.
- Программа завершается успешно.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д