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

Побуквенное сравнение строк string - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 157, средняя оценка - 4.64
Red Planet
 Аватар для Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
14.05.2010, 23:46     Побуквенное сравнение строк string #1
Нужна ваша помощь. Требуется посимвольное сравнение двух строк типа string. Есть ли в стандартной библиотеке такая функция?
Или нужно писать что-то свое вроде следующего:
C++
1
2
3
4
5
6
7
 string s1, s2 ("red"); bool pr=0;
 cout <<"String: ";
 getline (cin, s1);
 for (int i=0; i<s2.length(); i++)
 {
  if (s1[i]!=s2[i] || s1.length()!=s2.length()) {pr=0; break;}
 }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2010, 23:46     Побуквенное сравнение строк string
Посмотрите здесь:

C++ Сравнение объектов string
сравнение двух string C++
C++ Сравнение строк string без учета регистра
Сравнение char* и const string C++
C++ Сравнение двух строк string
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ISergey
Maniac
Эксперт С++
 Аватар для ISergey
1331 / 864 / 50
Регистрация: 02.01.2009
Сообщений: 2,622
Записей в блоге: 1
14.05.2010, 23:55     Побуквенное сравнение строк string #2
Хм...
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
 
int main(){
 
    std::string s1("str_f"), s2("str_f");
 
    if(s1 == s2)
        std::cout << "Ok..\n";
 
    return 0;
}
http://codepad.org/VER8pgj6
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3782 / 1766 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
15.05.2010, 00:00     Побуквенное сравнение строк string #3
Red Planet, вам нужна функция strcmp
Посимвольно сравнивает две строки.
strcmp возвращает:
<0, если string1 меньше string2
=0, если string1 равно string2
>0, если string1 больше string2
C++
1
2
3
4
5
6
7
8
9
10
11
12
//---------------------------------------------------------------------------
#include <tchar.h>
#include <string>
//---------------------------------------------------------------------------
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
    string a ("red"),b ("red");
    strcmp(a.c_str(),b.c_str());
    return 0;
}
//---------------------------------------------------------------------------
Red Planet
 Аватар для Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263
15.05.2010, 00:12  [ТС]     Побуквенное сравнение строк string #4
ISergey, так пробовал, сейчас работает, но, кажется, на предыдущей моей программе работало через раз, поэтому и создал тему.

MiCr0s0fT, спасибо, вводил разные строки - работает. Никогда раньше не приходилось применять эту функцию, смутили сначала слова "больше", "меньше". Думал, что сравнивает по длине.

Спасибо!
Yandex
Объявления
15.05.2010, 00:12     Побуквенное сравнение строк string
Ответ Создать тему
Опции темы

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