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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
NookieFanity
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 4
#1

Сравнение строк, не используя strcmp - C++

17.04.2012, 12:06. Просмотров 1471. Ответов 5
Метки нет (Все метки)

Здравствуйте. Столкнулся с такой вот проблемой:
Задача: Написать процедуру сравнения строк, не используя strcmp.

На данном форуме нашел вот такую тему: пример

Мне показалось, что можно использовать её, но проблемка в введении этих строк с клавиатуры. У меня в коде это вот так:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
using namespace std;
int main()
{
    char *stringa = new char[128]; 
    char *stringb = new char [128]; 
    setlocale(0, "Russian"); 
    printf("Введите первую строку: ");
    scanf("%s",stringa); 
    printf("Введите вторую строку: ");
    scanf("%s",stringb);
    if( stringa == stringb ) 
    {
        puts( "Одинаковые" );
    }
    else
    {
        puts( "Разные" );
    }
    
    system("pause"); 
    
    return 0;
}
Но мне вечно выдается:"разные". В чем может быть проблема?

З.Ы. Мне кажется, что намудрил как раз там где ввод строк
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2012, 12:06     Сравнение строк, не используя strcmp
Посмотрите здесь:

C++ Сравнение строк
C++ Сравнение строк
C++ Сравнение 2 строк
сравнение строк C++
C++ Сравнение двух строк функцией strcmp
Сравнение строк C++
Сравнение строк C++
Сравнение строк C++
C++ сравнение строк
Сравнение строк C++
Сравнение строк C++
C++ Создайте функцию strcmp – сравнение двух строк, учитывая регистр символов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
6130 / 5733 / 1855
Регистрация: 18.12.2011
Сообщений: 14,656
Завершенные тесты: 1
17.04.2012, 12:16     Сравнение строк, не используя strcmp #2
if( stringa == stringb )
сравнивает адреса строк, а они всегда разные.
функция сравнения строк
C++
1
2
3
4
5
6
bool cmp(char *a,char* b)
{
    for(int i=0;a[i]!=0 && b[i]!=0;i++)
          if(a[i]!=b[i])return false;
    return true;
}
NookieFanity
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 4
17.04.2012, 12:20  [ТС]     Сравнение строк, не используя strcmp #3
Благодарю за помощь. Сейчас попробую.
alexcoder
1444 / 658 / 87
Регистрация: 03.06.2009
Сообщений: 3,382
Завершенные тесты: 1
18.04.2012, 08:57     Сравнение строк, не используя strcmp #4
Найдите переменные типа указатель и определите допустиы ли операции, выполняемые над ними
3-й пример в первом посте
zss
Модератор
Эксперт С++
 Аватар для zss
6130 / 5733 / 1855
Регистрация: 18.12.2011
Сообщений: 14,656
Завершенные тесты: 1
18.04.2012, 19:39     Сравнение строк, не используя strcmp #5
C++
1
2
3
4
5
int f3 (char *s, char *t){
for ( ; *s==*t; s++, t++)// Двигаемся по строкам до тех пор, пока они одинаковые
        if (*s == '\0') return 0; // Попался конец строки, возвращаем "разницы в строках нет"
    return *s-*t; // возвращаем первую найденную разницу
}
NookieFanity
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 4
18.04.2012, 19:46  [ТС]     Сравнение строк, не используя strcmp #6
Всем спасибо за помощь. Программа готова.
Yandex
Объявления
18.04.2012, 19:46     Сравнение строк, не используя strcmp
Ответ Создать тему
Опции темы

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