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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
NookieFanity
0 / 0 / 0
Регистрация: 17.04.2012
Сообщений: 4
17.04.2012, 12:06     Сравнение строк, не используя strcmp #1
Здравствуйте. Столкнулся с такой вот проблемой:
Задача: Написать процедуру сравнения строк, не используя 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++ Сравнение строк
сравнение строк C++
C++ Сравнение двух строк функцией strcmp
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5944 / 5549 / 1783
Регистрация: 18.12.2011
Сообщений: 14,175
Завершенные тесты: 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
1438 / 652 / 86
Регистрация: 03.06.2009
Сообщений: 3,290
Завершенные тесты: 1
18.04.2012, 08:57     Сравнение строк, не используя strcmp #4
Найдите переменные типа указатель и определите допустиы ли операции, выполняемые над ними
3-й пример в первом посте
zss
Модератор
Эксперт С++
 Аватар для zss
5944 / 5549 / 1783
Регистрация: 18.12.2011
Сообщений: 14,175
Завершенные тесты: 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
Ответ Создать тему
Опции темы

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