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

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

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

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

29.12.2013, 21:41. Просмотров 772. Ответов 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++
Создать железнодорожный состав и переопределить для него операции сложения, вычитания и сравнения на равенство.

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MicM
821 / 488 / 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
821 / 488 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
29.12.2013, 23:04     Операции сравнения String #4
Цитата Сообщение от tcennoc Посмотреть сообщение
Чего-то не работает так.
Код в студию.
Genn55
366 / 213 / 41
Регистрация: 26.12.2012
Сообщений: 707
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
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
29.12.2013, 23:52     Операции сравнения String #7
Цитата Сообщение от tcennoc Посмотреть сообщение
Любой
Цитата Сообщение от tcennoc Посмотреть сообщение
i<=len
Цитата Сообщение от tcennoc Посмотреть сообщение
j<=len1
Выход за границу строки.
MicM
821 / 488 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
29.12.2013, 23:54     Операции сравнения String #8
Цитата Сообщение от tcennoc Посмотреть сообщение
Вот если
Код C++
1
a[i]=='a'; b[i]=='a';
То значения считаются одинаковыми?
Если они оба русские или оба английские, то да
Genn55
366 / 213 / 41
Регистрация: 26.12.2012
Сообщений: 707
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
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
30.12.2013, 02:35     Операции сравнения String #11
Цитата Сообщение от tcennoc Посмотреть сообщение
При син просто не выводит ничего.
Что вводите, и что ожидаете увидеть?
MrGluck
Модератор
Эксперт CЭксперт С++
7162 / 4328 / 631
Регистрация: 29.11.2010
Сообщений: 11,750
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++
#include &quot;Time.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; class Time { int min, sec; public: ...

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

String to string *ABCD*(41 42 43 44) -> *«Í*(AB CD) - C++
В общем вопрос в теме. На сях писал последний раз на 2 курсе, сейчас сижу не могу придумать как изящнее придумать решение. Надо для...

сделать сравнения - C++
Вот программа: #include&amp;lt;iostream&amp;gt; #include&amp;lt;conio.h&amp;gt; #include &amp;lt;math.h&amp;gt; using namespace std;class rational { ...

сделать сравнения - C++
как сделать сравнение? Не могу понять. Пожалуйста, помогите. Задание: Рациональная (несократимая) дробь представляется парой целых...


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

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

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