5 / 3 / 2
Регистрация: 25.11.2011
Сообщений: 78
1

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

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

Author24 — интернет-сервис помощи студентам
Всем привет!! Помогите решить задачку: ввести два слова и сравнить их.
Вот я почти решил, надо как-то внедрить проверку длины слова (может 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2011, 20:00
Ответы с готовыми решениями:

Сравнить два числа, введенных пользователем
Написать программу, которая сравнивает два введенных с клавиатуры числа. Программа должна указать,...

Сравнить два введенных числа, не используя логические выражения
Здравствуйте ! Дали задачу, не знаю как сделать не используя условия, прошу помощи в решении: Даны...

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

Как сравнить два слова
как сравнить два слова в массиве структур ? // masS.stud=go_23 // // masS.stud=go_23 //...

29
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 20:26 2
Используйте функцию strcmp() для сравнения строк
0
4764 / 2574 / 892
Регистрация: 29.11.2010
Сообщений: 5,562
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
5 / 3 / 2
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 20:30  [ТС] 4
Цитата Сообщение от Thinker Посмотреть сообщение
Используйте функцию strcmp() для сравнения строк
Можно фрагмент программы, ато только начал изучать строки
for(i=0;strcmp(i)+1;i++) как его использовать в fore?
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 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
5 / 3 / 2
Регистрация: 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
31 / 31 / 3
Регистрация: 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
5 / 3 / 2
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 20:38  [ТС] 8
А для strcmp библиотека <string>?
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
25.11.2011, 20:39 9
romster, cstring. И не библиотека а заголовочный файл.
0
31 / 31 / 3
Регистрация: 10.05.2011
Сообщений: 120
25.11.2011, 20:39 10
да!
C++
1
#include <string.h>
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 20:40 11
absokolov, амперсанды не нужны, имя массива это и так адрес.
0
31 / 31 / 3
Регистрация: 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
Эксперт С++
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.11.2011, 20:43 13
Цитата Сообщение от absokolov Посмотреть сообщение
можно и без них!

Не по теме:

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

0
5 / 3 / 2
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 20:46  [ТС] 14
А почему вот strcmp не объявлена говорит? #include <string> есть
0
4764 / 2574 / 892
Регистрация: 29.11.2010
Сообщений: 5,562
25.11.2011, 21:05 15
Цитата Сообщение от romster Посмотреть сообщение
А мне именно ввести и сравнить
А по-аналогии сделать?
0
5 / 3 / 2
Регистрация: 25.11.2011
Сообщений: 78
25.11.2011, 21:08  [ТС] 16
Цитата Сообщение от lemegeton Посмотреть сообщение
А по-аналогии сделать?
Буду тока рад
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
25.11.2011, 21:35 17
Цитата Сообщение от romster Посмотреть сообщение
А почему вот strcmp не объявлена говорит? #include <string> есть
C++
1
#include <string.h>
1
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
31.05.2014, 19:06 18
Цитата Сообщение от absokolov Посмотреть сообщение
if (strncmp(&a, &b, sizeof(a)) == 0)
а что означает (&a,&b,sizeof(a))==0)??ну сравнение к 0 это понятно а остальное?
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
31.05.2014, 19:08 19
sizeof(a) - размер массива a в байтах
0
0 / 0 / 3
Регистрация: 29.05.2014
Сообщений: 83
31.05.2014, 19:08 20
А еще даже хотел бы конкретезировать свой вопрос, как поставить условие по алфавиту? ну к примеру "арбуз был первый а баран второй"??
0
31.05.2014, 19:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2014, 19:08
Помогаю со студенческими работами здесь

Как сравнить две строки string, введенных с клавиатуры, и вывести на экран строку которая больше?
Как сравнить две строки string введенных с клавиатуры и вывести на экран строку которая больше ?

Сравнить два массива
Всем привет, помогите найти ошибку, я уже не знаю в чем дело, пытаюсь сравнить два массива, выводит...

Сравнить два вектора
Всем привет. Существует ли способ сравнить два вектора следующим образом: Даны два строковых...

Сравнить два числа
Составить программу для сравнения двух n-значных чисел (n &gt; 20). Учитывать знак числа. #include...

Сравнить два выражения
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;RUS&quot;); float x, y,...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru