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

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

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

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

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

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

Перегрузить операции сравнения комплексных чисел и операции потокового вывода - C++
Создать класс комплексное число. Перегрузить операции сравнения комплексных чисел! =, ==,>, <,> =, <= И операции потокового ввода-вывода. ...

Операции сравнения, объединения, пересечения множеств - C++
Есть лаба про операции над множествами с помощью перегрузки операторов. Надо реализовать операции сравнения, обьединения, пересичения...

переопределение операции сложения вычетания сравнения - C++
Создать железнодорожный состав и переопределить для него операции сложения, вычитания и сравнения на равенство.

Реализация операции сравнения для длинных чисел - C++
c++ Реализация операции сравнения для длинных чисел A>=B Используя "длинную арифметику" помогите пожста

Перегрузка операторов сравнения и разницы. Класс String - C++
Всем привет. задание написано в начале программы. Кто может помочь с исправлением -, <, > Мне только удалось перегрузить +, в...

Сравнения двух строк s1 и s2 не используя библиотеку <string.h> - C++
Помогите пожалуйста! Нужно написать программу для сравнения двух строк s1 и s2 не используя библиотеку &lt;string.h&gt;, а создать собственную...

12
MicM
822 / 480 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
29.12.2013, 22:45 #2
Цитата Сообщение от tcennoc Посмотреть сообщение
string a,b; a[i]==b[j]
Сравнивает i-ый символ строки а c j-ым символом строки b, и если они равны, то возвращает истину (1,true), иначе - ложь (0,false)
0
tcennoc
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 35
29.12.2013, 22:59  [ТС] #3
Цитата Сообщение от MicM Посмотреть сообщение
Сравнивает i-ый символ строки а c j-ым символом строки b, и если они равны, то возвращает истину (1,true), иначе - ложь (0,false)
Чего-то не работает так.
0
MicM
822 / 480 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
29.12.2013, 23:04 #4
Цитата Сообщение от tcennoc Посмотреть сообщение
Чего-то не работает так.
Код в студию.
0
Genn55
372 / 219 / 41
Регистрация: 26.12.2012
Сообщений: 718
29.12.2013, 23:09 #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;
}
0
tcennoc
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 35
29.12.2013, 23:31  [ТС] #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;
    
    }
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.12.2013, 23:52 #7
Цитата Сообщение от tcennoc Посмотреть сообщение
Любой
Цитата Сообщение от tcennoc Посмотреть сообщение
i<=len
Цитата Сообщение от tcennoc Посмотреть сообщение
j<=len1
Выход за границу строки.
1
MicM
822 / 480 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
29.12.2013, 23:54 #8
Цитата Сообщение от tcennoc Посмотреть сообщение
Вот если
Код C++
1
a[i]=='a'; b[i]=='a';
То значения считаются одинаковыми?
Если они оба русские или оба английские, то да
1
Genn55
372 / 219 / 41
Регистрация: 26.12.2012
Сообщений: 718
30.12.2013, 00:23 #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;
 
    }
1
tcennoc
1 / 1 / 0
Регистрация: 22.11.2013
Сообщений: 35
30.12.2013, 01:32  [ТС] #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 он не работал. Работал если строку задавал заранее. При син просто не выводит ничего.
0
alsav22
5426 / 4821 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.12.2013, 02:35 #11
Цитата Сообщение от tcennoc Посмотреть сообщение
При син просто не выводит ничего.
Что вводите, и что ожидаете увидеть?
1
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,596
30.12.2013, 09:42 #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));
}
1
Genn55
372 / 219 / 41
Регистрация: 26.12.2012
Сообщений: 718
30.12.2013, 10:14 #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();
1
30.12.2013, 10:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2013, 10:14
Привет! Вот еще темы с ответами:

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

Можно ли задать оператор сравнения (< или >) для string - C++
задача - создание шаблонного класса. и в нем используется оператор сравнения в одном из методов, задача предполагает использование инт,...

Нужно вместо операции сложения написать операцию сравнения временных интервалов - C++
#include &quot;Time.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class Time { int min, sec; public: ...

Создайте класс Время, в котором реализованы операции сложения, вычитания, сравнения, ввода и вывод на экран - C++
Задание было такое: Создайте класс Время, в котором реализованы операции сложения, вычитания, сравнения, ввода и вывод на экран... Вот...


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

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

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