Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сравнить строки ? 
:(
    Опции темы
admsasha
Дата 3.2.2005, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



#include <stdio.h>
#include <string.h>
#include <stdlib.h>

main()
{
char proba1[255],proba2[255];
strcpy(proba1,"aa");
strcpy(proba2,"aa");

if (proba2==proba1){ /// - как правильно тут написать ?
printf("TRUE");
}else{
printf("FALSE");
}
}



PM MAIL WWW ICQ Jabber   Вверх
maxim1000
Дата 3.2.2005, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



В C такого понятия, как строка нет, есть только понятие указателя на какое-нибудь место в памяти, где хранятся символы
поэтому строка
Код
proba2==proba1

сравнивает значения указателей, а не строки
для сравнения строк нужно пробежаться по ним и посмотреть, все ли символы одинаковые, останавливаться надо в конце строки, он обозначен символом с кодом 0
Код

int StringsCompare(char *s1,char *s2)
{
 while(1)//цикл для пробега по строкам
 {
   if(*s1!=*s2)//если символы разные - сразу говорим - строки разные (в том числе, если одна закончилась, а другая нет)
     return 0;
   if(*s1==0)//если строки закончились
     return 1;
   s1++;//передвигаемся впеед по первой строке
   s2++;//передвигаемся вперед по второй строке
 }
}

а вообще, конечно же, все это давно реализовано в функции strcmp smile


--------------------
qqq
PM WWW   Вверх
admsasha
Дата 3.2.2005, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 28.1.2005

Репутация: 1
Всего: 6



Код

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

main()
{

char proba1[255],proba2[255];

   strcpy(proba1,"aa");
   strcpy(proba2,"aa");

   if (strcmp(proba2,proba1)){
       printf("TRUE");
   }else{
       printf("FALSE");
   }
}


вывод FALSE
Добавлено @ 12:30
всё, сам ошибку в примере нашел, всем спасибо.
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0393 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.