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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.77
romster
 Аватар для romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 20:00     Сравнить два введённых слова #1
Всем привет!! Помогите решить задачку: ввести два слова и сравнить их.
Вот я почти решил, надо как-то внедрить проверку длины слова (может 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";
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2011, 20:00     Сравнить два введённых слова
Посмотрите здесь:

C++ Сравнить логически два массива
Как сравнить два массива C++
C++ Как сравнить два символа?
C++ Сравнить два поля узла
Сравнить два кода с условием C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 20:26     Сравнить два введённых слова #2
Используйте функцию strcmp() для сравнения строк
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
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;
}
romster
 Аватар для romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 20:30  [ТС]     Сравнить два введённых слова #4
Цитата Сообщение от Thinker Посмотреть сообщение
Используйте функцию strcmp() для сравнения строк
Можно фрагмент программы, ато только начал изучать строки
for(i=0;strcmp(i)+1;i++) как его использовать в fore?
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 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("не равны");
romster
 Аватар для 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;
}
А мне именно ввести и сравнить
absokolov
29 / 29 / 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";
}
romster
 Аватар для romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 20:38  [ТС]     Сравнить два введённых слова #8
А для strcmp библиотека <string>?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
25.11.2011, 20:39     Сравнить два введённых слова #9
romster, cstring. И не библиотека а заголовочный файл.
absokolov
29 / 29 / 1
Регистрация: 10.05.2011
Сообщений: 120
25.11.2011, 20:39     Сравнить два введённых слова #10
да!
C++
1
#include <string.h>
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 20:40     Сравнить два введённых слова #11
absokolov, амперсанды не нужны, имя массива это и так адрес.
absokolov
29 / 29 / 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";
}
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 20:43     Сравнить два введённых слова #13
Цитата Сообщение от absokolov Посмотреть сообщение
можно и без них!

Не по теме:

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

romster
 Аватар для romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 20:46  [ТС]     Сравнить два введённых слова #14
А почему вот strcmp не объявлена говорит? #include <string> есть
lemegeton
 Аватар для lemegeton
2910 / 1339 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
25.11.2011, 21:05     Сравнить два введённых слова #15
Цитата Сообщение от romster Посмотреть сообщение
А мне именно ввести и сравнить
А по-аналогии сделать?
romster
 Аватар для romster
5 / 3 / 1
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 21:08  [ТС]     Сравнить два введённых слова #16
Цитата Сообщение от lemegeton Посмотреть сообщение
А по-аналогии сделать?
Буду тока рад
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
25.11.2011, 21:35     Сравнить два введённых слова #17
Цитата Сообщение от romster Посмотреть сообщение
А почему вот strcmp не объявлена говорит? #include <string> есть
C++
1
#include <string.h>
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 77
31.05.2014, 19:06     Сравнить два введённых слова #18
Цитата Сообщение от absokolov Посмотреть сообщение
if (strncmp(&a, &b, sizeof(a)) == 0)
а что означает (&a,&b,sizeof(a))==0)??ну сравнение к 0 это понятно а остальное?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,915
Записей в блоге: 2
Завершенные тесты: 1
31.05.2014, 19:08     Сравнить два введённых слова #19
sizeof(a) - размер массива a в байтах
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.05.2014, 19:08     Сравнить два введённых слова
Еще ссылки по теме:

Как сравнить два слова C++
C++ Сравнить два контейнера set
Сравнить два вектора размерности n C++

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

Или воспользуйтесь поиском по форуму:
Ринат
0 / 0 / 0
Регистрация: 29.05.2014
Сообщений: 77
31.05.2014, 19:08     Сравнить два введённых слова #20
А еще даже хотел бы конкретезировать свой вопрос, как поставить условие по алфавиту? ну к примеру "арбуз был первый а баран второй"??
Yandex
Объявления
31.05.2014, 19:08     Сравнить два введённых слова
Ответ Создать тему
Опции темы

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