Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/37: Рейтинг темы: голосов - 37, средняя оценка - 4.92
10 / 10 / 2
Регистрация: 16.08.2009
Сообщений: 418
1

Как сравнить две переменные string

13.04.2010, 21:33. Просмотров 7126. Ответов 7
Метки нет (Все метки)

Есть две переменные типа string
в одной записано

C++
1
string X="AB BA  AS  AX";
В другой
C++
1
string Y="AB";
В строке X cимволы могут быть разделены одним или несколькими пробелами
строка Y всегда без пробелов и состоит из двух или трех символов

Как узнать что строка Y есть в одной из частей строки X которые разделены пробелами ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.04.2010, 21:33
Ответы с готовыми решениями:

Нужно сравнить две переменные типа string
Мне нужно сравнить 2 переменные типа string,нашел эту функцию,но почему то у меня выдает ошибку...

Как сравнить две строки типа string?
C типом char все просто. Поиск по Фамилии и имени. char name,name1,address, dom; int h=0; ...

Как сравнить две строки string, введенных с клавиатуры, и вывести на экран строку которая больше?
Как сравнить две строки string введенных с клавиатуры и вывести на экран строку которая больше ?

Сравнить две строки string
Добрый день Что имеется: vector<string> FIO; string temp; FIO формируется из темпов

7
Эксперт С++
2329 / 1702 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
13.04.2010, 21:38 2
С помощью метода find.
1
10 / 10 / 2
Регистрация: 16.08.2009
Сообщений: 418
13.04.2010, 22:00  [ТС] 3
Добавлено через 14 минут
пишу
C++
1
2
3
4
string X="AA  KK  QQ  JJ  TT";
 
string Y="AA";
int found=X.find(Y);
found получаеться всегда равно 0
почему ?
0
Эксперт С++
2329 / 1702 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
13.04.2010, 22:07 4
nill, а должно быть по другому? find возвращает позицию первого вхождения.
1
10 / 10 / 2
Регистрация: 16.08.2009
Сообщений: 418
13.04.2010, 22:18  [ТС] 5
так и есть спасибо!
Но как тогда определить что совпадение есть если оно на нулевой позиции ?

и сейчас проверил когда делаю такой поиск
C++
1
2
3
4
string X="KA  AK";
 
string Y="AA";
size_t found=X.find(Y);
found возвращает значение 4294967295
хотя по идее оно должно быть 0
то есть пробелы не учитываються ?
а мне надо чтобы учитывались
0
Эксперт С++
2329 / 1702 / 148
Регистрация: 06.03.2009
Сообщений: 3,675
13.04.2010, 22:30 6
nill, если строка не будет найдена find вернет npos:
C++
1
2
3
4
5
6
std::string X="KA  AK";
 
std::string Y="AA";
size_t found=X.find(Y);
if (found == std::string::npos)
 std::cout << "Not found";
Прочитай внимательно страницу по ссылке, которую я тебе дал.
1
10 / 10 / 2
Регистрация: 16.08.2009
Сообщений: 418
14.04.2010, 12:15  [ТС] 7
Теперь почти все поняно
А не подскажешь как начать поиск с определенной позиции

то есть

к примеру

C++
1
2
3
4
5
string X="AA  KK  АА  JJ  TT";
 
string Y="AA";
 
size_t found=X.find(Y);

АА нашлось на позиции 0
found=0;

а как продолжить поиск но не проверять позицию 0

твою ссылку на английском прочитал там нет этого случая

C++
1
2
3
found=str.find("needles are small",found+1,6);
  if (found!=string::npos)
    cout << "second 'needle' found at: " << int(found) << endl;
это совсем не то и к тому же у меня вылетает ошибка
0
Эксперт С++
5811 / 3462 / 356
Регистрация: 08.02.2010
Сообщений: 7,448
14.04.2010, 12:26 8
Цитата Сообщение от nill Посмотреть сообщение
А не подскажешь как начать поиск с определенной позиции
C++
1
found=str.find("needles are small", found+1);
Добавлено через 6 минут
Вот пример - программа считает число вхождений строки substring в строку string:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
 
int main()
{
    std::string string("aabd aab,ala aa");
    std::string substring("aa");
    size_t offset=0;
    size_t count=0;
    size_t size=substring.size();
    while((offset=string.find(substring, offset))!=std::string::npos)
    {
        ++count;
        offset+=size;
    }
    std::cout << count << std::endl;
    system("pause");
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.04.2010, 12:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Сравнить две переменные и изменить их значения по результатам сравнения
Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной...

Определить массив, создать две переменные типа указатель и сравнить
Определить одномерный массив размерностью 10 элементов, * значение которых целого типа (заполнять...

Как сравнить 2 string овые переменные?
Я знаю, что уже есть схожая тема,(https://www.cyberforum.ru/cpp-beginners/thread1441129.html) но ни...

Как сравнить введенную string с константой string
Как сравнить переменную String, вводимую с клавиатуры, с const string объявленную в начале кода? ...


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

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

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