С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
xfxh
0 / 0 / 0
Регистрация: 11.12.2013
Сообщений: 2
#1

Определить наличие в строке подстроки - C++

13.12.2013, 00:42. Просмотров 311. Ответов 0
Метки нет (Все метки)

Здравствуйте, программа не правильно находит позицию подстроки введенной на русском, значение умножается в два раза, что я делаю не так, или оно так и должно работать?

Вывод при вводе строки на английском:
Кликните здесь для просмотра всего текста
Введите строку : Hello World

Введите подстроку для поиска : lo

Позиция подстроки = 3
Press <RETURN> to close this window...

На русском:
Кликните здесь для просмотра всего текста
Введите строку : Привет мир

Введите подстроку для поиска : ет

Позиция подстроки = 8
Press <RETURN> to close this window...

Код:
Кликните здесь для просмотра всего текста
C++ (Qt)
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
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
 
    string str;
    string inStr;
 
    cout << "Введите строку : " ;
    getline(cin,str);
 
    cout << endl << "Введите подстроку для поиска : ";
    getline(cin,inStr);
    cout << endl;
 
    size_t pos = str.find(inStr);
 
    if (pos != string::npos) {
        cout << "Позиция подстроки = " << pos << endl;
    } else {
        cout << "Подстрока отсутствует в строке" << endl;
    }
 
    return 0;
}


Добавлено через 14 минут
В общем добавил такой кусок и заработало как надо, но мне кажется это как-то не совсем правильно
Кликните здесь для просмотра всего текста
C++ (Qt)
1
2
3
4
5
6
7
8
9
    string RuPos;
 
    size_t pos = str.find(inStr);
    size_t RuPos = str.find_first_not_of( "абвгдеёжзийклмнопрстуфхцчшщыъьэюя" );
 
 
    if (RuPos != string::npos) {
        pos = pos / 2;
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 00:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определить наличие в строке подстроки (C++):

Определить наличие восклицательного знака в вводимой строке - C++
Вводится набор символов, если есть восклицательный знак, выводится true, если нет - false. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

Найти длину максимальной подстроки, такой что в этой подстроке не существует подстроки равной какой-то строке - C++
Не могу решить задачу, я понял саму задачу. Не могу написать код, помогите, плз! У Дроида-На2а есть строка S, и K строк ai. Ваша задача...

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

Проверка на наличие подстроки регулярными выражениями - C++
Здравствуйте. С помощью регулярных выражений я пытаюсь проверить наличие подстроки. Для этого пишу такой код: std::regex...

Замена подстроки в строке - C++
Дана строка. Заменить все подстроки “xz2” на запятые без подключения дополнительных библиотек. Написал такой код, но выводиться какой-то...

Поиск подстроки в строке - C++
Добрый день. Ошибка в программе. Первый раз ищет отлично, потом постоянно ошибка //-функция осуществляет поиск подстроки str2 в...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2013, 00:42
Привет! Вот еще темы с ответами:

Замена подстроки в строке - C++
здесь у меня такая проблема возникла мне нужно заменить все &quot;were&quot; на &quot;are&quot; но &quot;are&quot; меньше на 1 символ я незнаю как его можно заменить...

Поиск подстроки в строке - C++
Доброго времени суток! Столкнулся с такой задачей. Вводим 10 слов, далее вводим приставку (начало слова). В итоге программа должна показать...

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

Замена подстроки в строке - C++
Так как не нашел алгоритм стемминга для C++, то пришлось что-то придумывать самому. Так вот есть такой код int i; for(i = 0; i &lt;...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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