Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
katena88
6 / 2 / 1
Регистрация: 25.10.2010
Сообщений: 86
#1

Поиск в строках с помощью strstr - C++

27.10.2010, 14:56. Просмотров 500. Ответов 9
Метки нет (Все метки)

Помогите блондинке!!!

как воспользоваться функцией char *strstr(const char *s1, const char *kor);
если мне потом нужно все совпадения вывести на экран то что писать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2010, 14:56     Поиск в строках с помощью strstr
Посмотрите здесь:

Найти совпадения в строках с помощью regex - C++
Всем привет. Нужно найти совпадения в строках. Если rx присваиваю вручную, то работает. std::tr1::regex rx("Hell") Как только...

Поиск строки в строках - C++
Работаю с MFC, классом CString. Даны строчки "http://localhost/123/favicon.ico", "http://localhost/123/24/SERVER.exe"... хранящие...

Поиск в строках файла - C++
Можете помочь с заданием ? Задан текстовый файл. В каждой строке файла найти слова з наибольшим количеством гласных букв. Заранее...

Поиск максимума в строках матрицы - C++
Здравствуй...Помги пожалуйста решить задачу..Что бы было простое решения,можно несколько решений и желательно простых.....(с полными...

Матрица, поиск наименьешего в строках - C++
Здравствуйте! Проблема ( Задача: Дана матрица nxm, определить наименьшие числа в строках. Вот мой код: #include <iostream> using...

Интерполирующий поиск в символьных строках - C++
Задание: найти заданный элемент в отсортированном массиве символьных строк Нужно переделать программу с последовательным поиском в...

Поиск чисел в строках файла - C++
Во входном файле in.txt содержатся две строчки целых чисел, например: -1 5 -7 -3 9 4 3 5 4 6 -7 2 10 -7 Строчки могут иметь...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
27.10.2010, 15:09     Поиск в строках с помощью strstr #2
вот так будет печатать с начала найденного фрагмента до конца строки.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <string.h>
 
int main()
{
        char string[] = "locate substring example. cat all occurrences";
        char *ptr = string;
 
        while((ptr = strstr(ptr, "cat")) != NULL) {
                printf("%s\n", ptr++);
        }
 
        return 0;
}
Результат работы:
cate substring example. cat all occurrences
cat all occurrences
easybudda
Эксперт С++
9458 / 5471 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
27.10.2010, 15:16     Поиск в строках с помощью strstr #3
Цитата Сообщение от katena88 Посмотреть сообщение
если мне потом нужно все совпадения вывести на экран
не очень понятная формулировка... попробую угадать:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
 
int main(void){
    const char * strA = "abcdefabcdefabcdef";
    const char * strB = "abc";
    char * p;
    int cnt;
 
    printf("A: %s\n", strA);
    printf("B: %s\n", strB);
 
    printf("B     SUBSTRING OF A\n------------------------------\n");
    for ( cnt = 0, p = strstr(strA, strB); p; ++cnt, p = strstr(p + 1, strB) )
        printf("%-6s%s\n", strB, p);
    printf("------------------------------\n%d matches.\n", cnt);
 
    return 0;
}
оно?
katena88
6 / 2 / 1
Регистрация: 25.10.2010
Сообщений: 86
27.10.2010, 16:07  [ТС]     Поиск в строках с помощью strstr #4
у меня есть массив char slova[20][20] в нем слова
мне нужно ввести корень с клавиатуры и все совпадения вывести на экран

Добавлено через 9 минут
Цитата Сообщение от fasked Посмотреть сообщение
вот так будет печатать с начала найденного фрагмента до конца строки.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <string.h>
 
int main()
{
        char string[] = "locate substring example. cat all occurrences";
        char *ptr = string;
 
        while((ptr = strstr(ptr, "cat")) != NULL) {
                printf("%s\n", ptr++);
        }
 
        return 0;
}
Результат работы:
Я изучаю язык Си всего 2ой день. Не мог бы ты написать все как для полного чайника
easybudda
Эксперт С++
9458 / 5471 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
27.10.2010, 16:15     Поиск в строках с помощью strstr #5
Цитата Сообщение от katena88 Посмотреть сообщение
у меня есть массив char slova[20][20]
не лучший способ хранить массив строк... так как-нибудь
C
1
2
3
4
5
6
7
8
9
#include <stdio.h>
#include <string.h>
...
char slova[20][20] = { /* каким-либо образом заполненный массив */ };
char koren[20] = { /* то, что нужно искать */ };
int i;
for ( for i = 0; i < 20; ++i )
  if strstr(slova + 20 * i, koren)
    printf("%s\n", slova + 20 * i;
не проверял
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
27.10.2010, 16:20     Поиск в строках с помощью strstr #6
Цитата Сообщение от katena88 Посмотреть сообщение
Не мог бы ты написать все как для полного чайника
исходя из объяснений задания могу сказать Вам, что такой вариант не подойдет. так что, есть ли смысл?
katena88
6 / 2 / 1
Регистрация: 25.10.2010
Сообщений: 86
27.10.2010, 16:35  [ТС]     Поиск в строках с помощью strstr #7
Цитата Сообщение от easybudda Посмотреть сообщение
не лучший способ хранить массив строк... так как-нибудь
не проверял
спасибо ограмное!!! еще 1 глупый вопросик:
а как в строчку распечатать??
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
27.10.2010, 16:40     Поиск в строках с помощью strstr #8
Цитата Сообщение от katena88 Посмотреть сообщение
а как в строчку распечатать??
Цитата Сообщение от easybudda Посмотреть сообщение
printf("%s\n", slova + 20 * i;
убрать символ конца строки '\n '
C
1
printf("%s ", slova + 20 * i);
easybudda
Эксперт С++
9458 / 5471 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
27.10.2010, 16:41     Поиск в строках с помощью strstr #9
Цитата Сообщение от katena88 Посмотреть сообщение
спасибо ограмное!!!
получилось?

Цитата Сообщение от katena88 Посмотреть сообщение
а как в строчку распечатать??
C
1
2
...
printf("%s ", slova + 20 * i);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2010, 16:43     Поиск в строках с помощью strstr
Еще ссылки по теме:

Поиск подстроки в двух строках - C++
Суть такая, вводим 2 строки, программа должна найти максимальную подстроку из двух строк... Пример leybar //1 строка hey //2ая ...

Поиск и удаление элементов в символьных строках. - C++
Товарищи,помогите пожалуйста написать программу для поиска в символьной строке элементов, которые удаляем и потом выводим новую готовую...

Поиск подстрок в строках и вывод в файл - C++
Дан файл, html код страницы, в котором есть повторения типа &quot;email: password&quot;, например: lal@mail.ru: TXGgQ32Bh8J7PQn6J ...

Поиск елемента 2-хмерного массива который встречается во всех строках - C++
Задан целочисненный двухмерный массив A, каждая строка этого массива упорядочена по возрастанию т.е. A &lt; A. Найти и Вывести на екран...

функция strstr - C++
Кто нибудь может объяснить как использовать функцию strstr со строками? В последней строке кода выдает ошибку &quot;no matching function for...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
katena88
6 / 2 / 1
Регистрация: 25.10.2010
Сообщений: 86
27.10.2010, 16:43  [ТС]     Поиск в строках с помощью strstr #10
Цитата Сообщение от easybudda Посмотреть сообщение
получилось?

[[/C]
вот что я сделала:

C
1
2
3
4
for ( i = 0; i < 20; ++i )
{
    if (strstr(slova[i], kor))  printf("%s\n", slova[i]);
}
Да все получилось!!!! Спасибо ОГРОМНОЕ приОГРОМНОЕ!!!!
Yandex
Объявления
27.10.2010, 16:43     Поиск в строках с помощью strstr
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru