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

Поиск подстроки - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 42, средняя оценка - 5.00
anele
1 / 1 / 0
Регистрация: 01.05.2011
Сообщений: 10
21.05.2011, 19:10     Поиск подстроки #1
Почему при поиске вхождения подстроки в строку если я ввожу несколько слов, то компилятор разделяет строку на слова и ищет вхождение в них?

Мне надо составить программу, с которой можно было бы "разговаривать"

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <cstdlib>
#include <iostream>
#include <conio.h>
#include <stdlib.h>
 
using namespace std;
 
int main()
{
 
 setlocale(0,"rus");
 
int x;
string qwe;
string a;
 
string otv1="Eto makrosu. Ya znaya makrosu";
string otv2="Pishniki samue klevue!";
string otv3="Svoya marka zamechatelnaya gazeta.";
string otv4="Vse zamechatelno!!!";
string otv5="Basic";
string otv6="Priveeeeeet! Davno ne videlis!";
string otv="Poka. Yvidimsya skoro.";
string def="Nuuuuu ne znayu ya!";
 
cout<<"Vsem privet! Eto model cheloveka!"<<endl;
 
cout<<"Sprosi y menya chto-nibud'))"<<endl<<endl;
 
do {
x=0;
qwe="";
a="";
 cin>>qwe;
 
if ((qwe.find("priv"))==0)
 {a=otv6;}
 
if ((qwe.find ("dela"))==0) 
 {a=otv4;}
 
if ((qwe.find ("pi"))==0)
 {a=otv2;}
 
if ((qwe.find("basic"))==0)
 {a=otv1;}
 
if ((qwe.find("Parallel"))==0) 
 {a=otv3;}
 
if ((qwe.find("sdae"))==0)
 {a=otv5;}
 
if ((qwe.find("poka"))==0)
 {a=otv;
 x=1;}
 
if (a=="")
{a="Nuuuuu ne znayu ya!";}
cout<<a<<endl;
 
}
 
while (x!=1);
 
 getch();
}
По сути дела, если задается вопрос, который не включает в себя ни одно из этих слов, то должна выводится строка "Nuuuuu ne znayu ya!". А она выводится при вхождении в строку любого слова, отличного от тех, что должны искаться.

Что я делаю не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.05.2011, 19:10     Поиск подстроки
Посмотрите здесь:

C++ Поиск подстроки
Мне надо сделать поиск последнего вхождения подстроки s1 в строку s(с функцией LastPos, не strstr). В этом коде просто вхождение подстроки в строку. C++
Поиск подстроки C++
Поиск подстроки C++
C++ Поиск подстроки
Поиск подстроки C++
C++ Поиск подстроки
Поиск подстроки C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
21.05.2011, 19:16     Поиск подстроки #2
Сравнивать значение, возвращаемое string.find() нужно не с 0, а с string::npos.
А вообще, читайте

Добавлено через 1 минуту
И читайте про стандартные операторы C++, про case вам ваще в тему было бы.

Добавлено через 30 секунд
И ваще пипец
Yandex
Объявления
21.05.2011, 19:16     Поиск подстроки
Ответ Создать тему
Опции темы

Текущее время: 09:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru