Вывести слова строки, содержащие определенные буквы - C (СИ)
Формулировка задачи:
Вывести все слова , содержащие буквы которые входят в слово "файл".
Подскажите как их найти их и вывести.
Листинг программы
- #include <stdafx.h>
- #include <stdio.h>
- #include <locale.h>
- int main()
- {
- setlocale(LC_ALL,"RUS");
- char str[] = "манрра, фр а алвл в во вовлл.";
- int s = 0, i = 0, n = 0, u = 0;
- int j;
- for(j = 0; str[j]; j++){
- if(str[j] == 'ф')
- s++;
- if(str[j] == 'а')
- i++;
- if(str[j] == 'й')
- n++;
- if(str[j] == 'л')
- u++;
- if(str[j] == '.')
- break;
- }
- if(s == 1 && i == 1 && n == 1 && u == 1 )
- printf("\n OK");
- else printf("\n FAIL");
- return 0;
- }
Решение задачи: «Вывести слова строки, содержащие определенные буквы»
textual
Листинг программы
- #include <stdio.h>
- #include <string.h>
- int main(){
- char str[] = "rewt vxcv fdf sdf 4fds dflp";
- char find[] = "file";
- char tmp[128] = {0};
- int lenFind = strlen(find);
- int lenStr = strlen(str);
- int i = 0, j = 0, k = 0, m = 0;
- for(i = 0; i <= lenStr; i++) {
- if(str[i] == ' ' || str[i] == '\0') {
- j = 0;
- while(j < k) {
- for(m = 0; m < lenFind; m++) {
- if(tmp[j] == find[m]) {
- printf("[ %s ]\r\n", tmp);
- goto Next;
- }
- }
- j++;
- }
- Next: k = 0;
- } else {
- tmp[k++] = str[i];
- }
- }
- getchar();
- return 0;
- }
Объяснение кода листинга программы
В этом коде на языке C происходит поиск подстрок в заданной строке, содержащих определенные буквы. Список действий:
- Подключить необходимые библиотеки
- Определить переменные:
- str - исходная строка
- find - строка, которую необходимо найти
- tmp - временная строка для хранения подстрок
- lenFind - длина строки find
- lenStr - длина строки str
- i, j, k, m - индексы для работы со строками
- Запустить цикл по всем символам строки str
- Внутри цикла проверять, является ли текущий символ пробелом или концом строки
- Если это так, то сбрасывать счетчик j и начинать сбор подстрок с начала
- Для каждой буквы из find проверять, содержится ли она в текущей подстроке
- Если да, то выводить подстроку и переходить к следующему этапу
- Если нет, то добавлять текущий символ в подстроку и увеличивать счетчик k
- После окончания цикла получить символ, нажатый пользователем, и завершить программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д