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

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

Восстановить пароль Регистрация
 
tcennoc
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 35
29.12.2013, 21:41     Операции сравнения String #1
Как работает оператор == если нужно сравнить например
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++ операции с строками без использования класса string
Создайте класс Время, в котором реализованы операции сложения, вычитания, сравнения, ввода и вывод на экран C++
Сравнения двух строк s1 и s2 не используя библиотеку <string.h> 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
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
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
5282 / 4801 / 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
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
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
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.12.2013, 02:35     Операции сравнения String #11
Цитата Сообщение от tcennoc Посмотреть сообщение
При син просто не выводит ничего.
Что вводите, и что ожидаете увидеть?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4920 / 2663 / 243
Регистрация: 29.11.2010
Сообщений: 7,413
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 не определён при наличии #include <string>
C++ Перегрузка операторов сравнения и разницы. Класс String

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

Или воспользуйтесь поиском по форуму:
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
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
Ответ Создать тему
Опции темы

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