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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.77
romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
#1

Сравнить два введённых слова - C++

25.11.2011, 20:00. Просмотров 6163. Ответов 29
Метки нет (Все метки)

Всем привет!! Помогите решить задачку: ввести два слова и сравнить их.
Вот я почти решил, надо как-то внедрить проверку длины слова (может strlen?)
Атто у меня если введёшь dos и dosa, то считает правильным))
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include<string>
 
using namespace std;
 
int main()
{
char a[50],b[50];
int i;
cout<<"Vvedite slovo N1 i N2\n";
cin>>a>>b;
for(i=0;i<1;i++)
if (a[i]==b[i])
cout<<"da";
else cout<<"net";
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2011, 20:00
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сравнить два введённых слова (C++):

Проверить, совпадают ли два введённых слова - C++
1. Проверить, совпадают ли два введённых слова (есть решённая) 2. Вставить вместо &quot;т&quot;, стоячей на нечётном месте букву &quot;у&quot;. Помогите со...

Как сравнить два слова - C++
как сравнить два слова в массиве структур ? // masS.stud=go_23 // // masS.stud=go_23 // ... if(masS.stud==masS.stud) //...

Проверить, что из введённых чисел x, y, z только два числа равны между собой - C++
Не использую оператора if, присвоить переменной значение t значение 0, если из введённых чисел x,y,z только два числа равны между собой, и...

Сравнить два массива - C++
Подскажите пожалуйста как решить задачу: Нужно сравнить два массива, проверить все элементы на совпадение и если они совпадают то вывести...

Сравнить два контейнера set - C++
Всем добрый вечер . Как сравнить два контейнера set? Допустим: set &lt;int&gt; m1; set &lt;int&gt; m2; for( int i = 0; i &lt; 5;...

Сравнить два кода с условием - C++
if(a == 1) b = 2; else b = 3; c = 2; if(a== 1) { b = 2 } else { b = 3 } c = 2; Тоже самое произойдет? Или в 1 варианте...

29
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 20:26 #2
Используйте функцию strcmp() для сравнения строк
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
25.11.2011, 20:27 #3
Ну или можно самостоятельно написать.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int strcmp(const char *a, const char *b) {
  for (; a != '\0' && b != '\0'; ++a, ++b)
    if (*a != *b)
      return *a - *b;
  return 0;
}
 
int main(void) {
  printf("%d\n", strcmp("abcd", "abcd"));
  printf("%d\n", strcmp("abcd", "abc"));
  printf("%d\n", strcmp("abc", "abcd"));
  printf("%d\n", strcmp("abce", "abcd"));
  printf("%d\n", strcmp("abcd", "abce"));
  return 0;
}
0
romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 20:30  [ТС] #4
Цитата Сообщение от Thinker Посмотреть сообщение
Используйте функцию strcmp() для сравнения строк
Можно фрагмент программы, ато только начал изучать строки
for(i=0;strcmp(i)+1;i++) как его использовать в fore?
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 20:35 #5
цикл здесь совсем не нужен, функция все сама сделает:
C
1
2
3
if (strcmp(a, b) == 0)
   puts("строки равны");
else puts("не равны");
0
romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 20:35  [ТС] #6
Цитата Сообщение от lemegeton Посмотреть сообщение
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int strcmp(const char *a, const char *b) {
  for (; a != '\0' && b != '\0'; ++a, ++b)
    if (*a != *b)
      return *a - *b;
  return 0;
}
 
int main(void) {
  printf("%d\n", strcmp("abcd", "abcd"));
  printf("%d\n", strcmp("abcd", "abc"));
  printf("%d\n", strcmp("abc", "abcd"));
  printf("%d\n", strcmp("abce", "abcd"));
  printf("%d\n", strcmp("abcd", "abce"));
  return 0;
}
А мне именно ввести и сравнить
0
absokolov
30 / 30 / 1
Регистрация: 10.05.2011
Сообщений: 120
25.11.2011, 20:38 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include<string>
 
using namespace std;
 
int main()
{
char a[50],b[50];
int i;
cout<<"Vvedite slovo N1 i N2\n";
cin>>a>>b;
if (strncmp(&a, &b, sizeof(a)) == 0)
cout<<"da";
else cout<<"net";
}
0
romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 20:38  [ТС] #8
А для strcmp библиотека <string>?
0
ForEveR
В астрале
Эксперт С++
7983 / 4742 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
25.11.2011, 20:39 #9
romster, cstring. И не библиотека а заголовочный файл.
0
absokolov
30 / 30 / 1
Регистрация: 10.05.2011
Сообщений: 120
25.11.2011, 20:39 #10
да!
C++
1
#include <string.h>
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 20:40 #11
absokolov, амперсанды не нужны, имя массива это и так адрес.
0
absokolov
30 / 30 / 1
Регистрация: 10.05.2011
Сообщений: 120
25.11.2011, 20:41 #12
Ну можно и без них!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include<string>
 
using namespace std;
 
int main()
{
char a[50],b[50];
int i;
cout<<"Vvedite slovo N1 i N2\n";
cin>>a>>b;
if (strncmp(a, b, sizeof(a)) == 0)
cout<<"da";
else cout<<"net";
}
0
Thinker
Эксперт С++
4228 / 2202 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 20:43 #13
Цитата Сообщение от absokolov Посмотреть сообщение
можно и без них!

Не по теме:

Хотя и правда с ними ошибки не будет.

0
romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 20:46  [ТС] #14
А почему вот strcmp не объявлена говорит? #include <string> есть
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
25.11.2011, 21:05 #15
Цитата Сообщение от romster Посмотреть сообщение
А мне именно ввести и сравнить
А по-аналогии сделать?
0
25.11.2011, 21:05
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2011, 21:05
Привет! Вот еще темы с ответами:

Сравнить два подмножества в матрице - C++
подскажите пжл как сравнить 2 подмножества в матрице

Сравнить два любых файла на С++ - C++
В общем задача такая: Надо сравнить два любых файла(ехе, doc, pdf) - и вывести сообщение: а) если они различаются - то место(номер)...

Сравнить логически два массива - C++
Сравнить , используя логическое или(||) два одномерных массива (А и В) и записать результат в массив С Массивы создал , но не знаю как...

Как сравнить два массива - C++
Здравствуйте форумчане! Помогите пожалуйста, скажите как сравнить два массива побитово и побайтово. В инете ни чего не могу найти((


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

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

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