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

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

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

Операции сравнения String - C++

29.12.2013, 21:41. Просмотров 664. Ответов 12
Метки нет (Все метки)

Как работает оператор == если нужно сравнить например
C++
1
string a,b; a[i]==b[j]
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2013, 21:41     Операции сравнения String
Посмотрите здесь:

Реализация операции сравнения для длинных чисел C++
Создайте класс Время, в котором реализованы операции сложения, вычитания, сравнения, ввода и вывод на экран C++
Сравнения двух строк s1 и s2 не используя библиотеку <string.h> C++
C++ String to string *ABCD*(41 42 43 44) -> *«Í*(AB CD)
C++ сделать сравнения
Операции сравнения, объединения, пересечения множеств C++
C++ переопределение операции сложения вычетания сравнения
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
29.12.2013, 22:45     Операции сравнения String #2
Цитата Сообщение от tcennoc Посмотреть сообщение
string a,b; a[i]==b[j]
Сравнивает i-ый символ строки а c j-ым символом строки b, и если они равны, то возвращает истину (1,true), иначе - ложь (0,false)
tcennoc
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 35
29.12.2013, 22:59  [ТС]     Операции сравнения String #3
Цитата Сообщение от MicM Посмотреть сообщение
Сравнивает i-ый символ строки а c j-ым символом строки b, и если они равны, то возвращает истину (1,true), иначе - ложь (0,false)
Чего-то не работает так.
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
29.12.2013, 23:04     Операции сравнения String #4
Цитата Сообщение от tcennoc Посмотреть сообщение
Чего-то не работает так.
Код в студию.
Genn55
342 / 189 / 37
Регистрация: 26.12.2012
Сообщений: 661
29.12.2013, 23:09     Операции сравнения String #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//сравнить 2 строки
#include <stdlib.h>
#include <iostream>
#include <cstring>
#include <conio.h>
 
using namespace std;
int main()
{
char str1[80],str2[80];
cout << "  Enter string  ";
cin.getline (str1,80);
cout << "  Enter string  ";
cin.getline (str2,80);
 
cout <<" str1: "<<str1<<"\n";
cout <<" str2: "<<str2<<"\n";
if(!strcmp(str1,str2))
cout << "  !!!!!    " << "\n";
else
cout << "  ??????    " << "\n";
    return 0;
}
tcennoc
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 35
29.12.2013, 23:31  [ТС]     Операции сравнения String #6
Вот если
C++
1
a[i]=='a'; b[i]=='a';
То значения считаются одинаковыми? Если знаете какая ф-ция в string действует как конъюнкция на множествах. Напр. {a,b} &{a,c}={a} и ф-ция исключающее или {a,b} {a,c} возвращает строку {b,c}

Добавлено через 9 минут
Цитата Сообщение от Genn55 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//сравнить 2 строки
#include <stdlib.h>
#include <iostream>
#include <cstring>
#include <conio.h>
 
using namespace std;
int main()
{
char str1[80],str2[80];
cout << "  Enter string  ";
cin.getline (str1,80);
cout << "  Enter string  ";
cin.getline (str2,80);
 
cout <<" str1: "<<str1<<"\n";
cout <<" str2: "<<str2<<"\n";
if(!strcmp(str1,str2))
cout << "  !!!!!    " << "\n";
else
cout << "  ??????    " << "\n";
    return 0;
}
Но вы тут используете char, а мне нужно string str;

Добавлено через 9 минут
Цитата Сообщение от MicM Посмотреть сообщение
Код в студию.
Любой
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
#include "stdafx.h"
#include<iostream>
 
#include<string>
 
using namespace std;
const int n=45;
    int main()
{
    setlocale(LC_ALL, "Russian");
    string str
    string str1;
 cin>>str;
 cin>>str1;
     int len=str.size();
     int len1=str1.size();
     for (int i=0;i<=len;i++)
     {
     for (int j=0;j<=len1;j++)
     {
    if(str1[j]!=str[i]){cout<<str[i];}
 
     }
     }
         
     
     system("pause");
     return 0;
    
    }
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.12.2013, 23:52     Операции сравнения String #7
Цитата Сообщение от tcennoc Посмотреть сообщение
Любой
Цитата Сообщение от tcennoc Посмотреть сообщение
i<=len
Цитата Сообщение от tcennoc Посмотреть сообщение
j<=len1
Выход за границу строки.
MicM
 Аватар для MicM
820 / 487 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
29.12.2013, 23:54     Операции сравнения String #8
Цитата Сообщение от tcennoc Посмотреть сообщение
Вот если
Код C++
1
a[i]=='a'; b[i]=='a';
То значения считаются одинаковыми?
Если они оба русские или оба английские, то да
Genn55
342 / 189 / 37
Регистрация: 26.12.2012
Сообщений: 661
30.12.2013, 00:23     Операции сравнения String #9
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
//#include "stdafx.h"
#include<iostream>
 
#include<string>
using namespace std;
 
    int main()
{
    setlocale(LC_ALL, "Russian");
    string str;
    string str1;
    bool d;
 cin>>str;
 cin>>str1;
     int len=str.size();
     int len1=str1.size();
 
     for (int i=0;i<len;i++)
     {
     for (int j=0;j<len1;j++)
     {
    if(str1[j]!=str[i])
    {
 
        d = true;
    }
 
     }
     }
     if (d)
     for (int i=0;i<len;i++)
cout<<str[i];
 
     //system("pause");
     return 0;
 
    }
tcennoc
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 35
30.12.2013, 01:32  [ТС]     Операции сравнения String #10
Цитата Сообщение от Genn55 Посмотреть сообщение
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
//#include "stdafx.h"
#include<iostream>
 
#include<string>
using namespace std;
 
    int main()
{
    setlocale(LC_ALL, "Russian");
    string str;
    string str1;
    bool d;
 cin>>str;
 cin>>str1;
     int len=str.size();
     int len1=str1.size();
 
     for (int i=0;i<len;i++)
     {
     for (int j=0;j<len1;j++)
     {
    if(str1[j]!=str[i])
    {
 
        d = true;
    }
 
     }
     }
     if (d)
     for (int i=0;i<len;i++)
cout<<str[i];
 
     //system("pause");
     return 0;
 
    }
Общий алгоритм понятен. Но при вводе через cin он не работал. Работал если строку задавал заранее. При син просто не выводит ничего.
alsav22
5411 / 4807 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.12.2013, 02:35     Операции сравнения String #11
Цитата Сообщение от tcennoc Посмотреть сообщение
При син просто не выводит ничего.
Что вводите, и что ожидаете увидеть?
MrGluck
Ворчун
Эксперт CЭксперт С++
 Аватар для MrGluck
6227 / 3472 / 424
Регистрация: 29.11.2010
Сообщений: 9,178
30.12.2013, 09:42     Операции сравнения String #12
Цитата Сообщение от tcennoc Посмотреть сообщение
Напр. {a,b} &{a,c}={a} и ф-ция исключающее или {a,b} {a,c} возвращает строку {b,c}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
 
int main()
{
    std::string str1, str2;
    std::getline(std::cin, str1);
    std::getline(std::cin, str2);
    std::sort(str1.begin(), str1.end());
    std::sort(str2.begin(), str2.end());
 
 
    typedef std::ostream_iterator<char> output_ch;
 
    std::cout << "Intersection: ";
    std::set_intersection(str1.begin(), str1.end(), str2.begin(), str2.end(), output_ch(std::cout));
    std::cout << "\nSymmetric difference: ";
    std::set_symmetric_difference(str1.begin(), str1.end(), str2.begin(), str2.end(), output_ch(std::cout));
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2013, 10:14     Операции сравнения String
Еще ссылки по теме:

C++ Нужно вместо операции сложения написать операцию сравнения временных интервалов
C++ Перегрузка операторов сравнения и разницы. Класс String
C++ Сравнение string::iterator со string::reverse_iterator
Можно ли задать оператор сравнения (< или >) для string C++
Создание string из части другого string C++

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

Или воспользуйтесь поиском по форуму:
Genn55
342 / 189 / 37
Регистрация: 26.12.2012
Сообщений: 661
30.12.2013, 10:14     Операции сравнения String #13
Цитата Сообщение от tcennoc Посмотреть сообщение
Общий алгоритм понятен. Но при вводе через cin он не работал. Работал если строку задавал заранее. При син просто не выводит ничего.
Через cin работать будет до пробела,если так то работать будет
C++
1
2
3
4
5
6
7
8
9
   string str;
    string str1;
    bool d;
    getline(cin, str);
    getline(cin, str1);
 //cin>>str;
 //cin>>str1;
     int len=str.size();
     int len1=str1.size();
Yandex
Объявления
30.12.2013, 10:14     Операции сравнения String
Ответ Создать тему
Опции темы

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