Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <locale.h>
- using namespace std;
- int str_len(char *s) { // функция, которая находит длину строки
- int i = 0;
- int k = 0;
- while (s[i]) {
- k++;
- i++;
- }
- return k;
- }
- void init_s(char * &s, int a) { // функция посимвольного ввода до нажатия Enter
- int i = 0;
- while (i == 0) {
- cout << "Введите строку " <<a << ":" << endl;
- s[0] = getchar();
- while (s[i] != '\n') {
- s = (char *)realloc(s, sizeof(char)*(++i + 1));
- s[i] = getchar();
- }
- s[i] = '\0';
- }
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- char *s = (char *)malloc(sizeof(char));
- char *s1 = (char *)malloc(sizeof(char));
- init_s(s, 1); //ввод основной строки
- rewind(stdin);
- init_s(s1, 2);// ввод шаблона
- int i = 0;
- while (s[i]){
- if (s[i] == ' '|| i == 0) { // если нашли начало слова начинаем его сранивать с шаблоном
- if (i != 0) i++;
- int j = 0;
- int i1 = i;
- while ((((s[i1] == s1[j] || s1[j]+32 == s[i1] || s[i1]+32 == s1[j]) && s1[j] != '*') || s1[j] == '?')&&s[i1] && s1[j]) { // сравниваем
- i1++;
- j++;
- }
- if (j == str_len(s1) || s1[j] == '*') { // проверяем совпало ли слово
- if (j == str_len(s1) && s[i1] != ' ') {
- i++;
- continue;
- }
- int l = i, r = i1;
- while (s[r] != ' ' && s[r]) r++;
- for (int u = l; u < r; u++) { // выводим слово
- cout << s[u];
- }
- cout << endl;
- }
- }
- i++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement