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

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

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

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

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

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

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

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

Мне надо сделать поиск последнего вхождения подстроки s1 в строку s(с функцией LastPos, не strstr). В этом коде просто вхождение подстроки в строку. - C++
#include <stdio.h> int count_of_substrings(string s, string s1){ int start = 0; int count = 0; int pos = 0; ...

Поиск в строках - C++
Помогите пожалуйста найти самое короткое слово в предложении из всех слов с длиной не менее 4 символов.

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

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

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

9
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
27.10.2010, 15:09 #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
0
easybudda
Модератор
Эксперт CЭксперт С++
9664 / 5614 / 952
Регистрация: 25.07.2009
Сообщений: 10,778
27.10.2010, 15:16 #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;
}
оно?
0
katena88
6 / 2 / 1
Регистрация: 25.10.2010
Сообщений: 86
27.10.2010, 16:07  [ТС] #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ой день. Не мог бы ты написать все как для полного чайника
0
easybudda
Модератор
Эксперт CЭксперт С++
9664 / 5614 / 952
Регистрация: 25.07.2009
Сообщений: 10,778
27.10.2010, 16:15 #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;
не проверял
1
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
27.10.2010, 16:20 #6
Цитата Сообщение от katena88 Посмотреть сообщение
Не мог бы ты написать все как для полного чайника
исходя из объяснений задания могу сказать Вам, что такой вариант не подойдет. так что, есть ли смысл?
0
katena88
6 / 2 / 1
Регистрация: 25.10.2010
Сообщений: 86
27.10.2010, 16:35  [ТС] #7
Цитата Сообщение от easybudda Посмотреть сообщение
не лучший способ хранить массив строк... так как-нибудь
не проверял
спасибо ограмное!!! еще 1 глупый вопросик:
а как в строчку распечатать??
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
27.10.2010, 16:40 #8
Цитата Сообщение от katena88 Посмотреть сообщение
а как в строчку распечатать??
Цитата Сообщение от easybudda Посмотреть сообщение
printf("%s\n", slova + 20 * i;
убрать символ конца строки '\n '
C
1
printf("%s ", slova + 20 * i);
1
easybudda
Модератор
Эксперт CЭксперт С++
9664 / 5614 / 952
Регистрация: 25.07.2009
Сообщений: 10,778
27.10.2010, 16:41 #9
Цитата Сообщение от katena88 Посмотреть сообщение
спасибо ограмное!!!
получилось?

Цитата Сообщение от katena88 Посмотреть сообщение
а как в строчку распечатать??
C
1
2
...
printf("%s ", slova + 20 * i);
1
katena88
6 / 2 / 1
Регистрация: 25.10.2010
Сообщений: 86
27.10.2010, 16:43  [ТС] #10
Цитата Сообщение от easybudda Посмотреть сообщение
получилось?

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

C
1
2
3
4
for ( i = 0; i < 20; ++i )
{
    if (strstr(slova[i], kor))  printf("%s\n", slova[i]);
}
Да все получилось!!!! Спасибо ОГРОМНОЕ приОГРОМНОЕ!!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2010, 16:43
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
27.10.2010, 16:43
Ответ Создать тему
Опции темы

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