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

сравнивание строк - C++

Восстановить пароль Регистрация
 
LedZeppelin
 Аватар для LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
08.05.2011, 21:58     сравнивание строк #1
Здравствуйте. Обьясните пожалуйста чайнику, почему я немогу сравнить строку вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main()
{
    char a[]="privet";
    if(a=="privet") cout<<"равно"<<endl;
    cout<<a;
 
   cin.get();
    return 0;
 
}
И как правильно это делается ? Для меня как человеку пришедшему из PHP это трудно понять
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2011, 21:58     сравнивание строк
Посмотрите здесь:

C++ Сравнивание указателей
сравнивание переменной с массивом(чисел) C++
C++ Сравнивание 3-х чисел
Сравнивание и присоединение строк C++
C++ сравнивание двух чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
eXXXXXXXXXXX
30 / 30 / 3
Регистрация: 24.02.2011
Сообщений: 126
08.05.2011, 22:02     сравнивание строк #2
C++
1
2
3
4
if (strcmp(a,"privet")==0)
{
      cout<<"равно"<<endl;
}
здесь a- это указатель на char, "privet" - тоже указатель на char, а указывают они ,естественно, на разные участки памяти
LedZeppelin
 Аватар для LedZeppelin
7 / 7 / 0
Регистрация: 19.04.2011
Сообщений: 68
08.05.2011, 22:29  [ТС]     сравнивание строк #3
eXXXXXXXXXXX,Cпасибо за оперативность
Почему в этом языке так все усложнено ? И зачем я учился PHP, теперь в голове каша.
О горе мне. Обьясните теперь в чем разница между
C++
1
 char a[]="pri";
и
C++
1
 char *a="pri";
Если можно обьясните суть.

Добавлено через 18 минут
И есче один вопрос. В первом примере я пытался сранить строки, как мне обьяснили делал я неправильно. Но ведь компилятор не сообщил об ошибке. Значит я что то сравнивал. И что же я сравнивал интересно узнать.

Не по теме:

этому языку вообще можно научится ?_))

ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
09.05.2011, 00:50     сравнивание строк #4
LedZeppelin, Можно. Разница в том, что в первом случае ты объявляешь массив, а во втором указатель + в данном случае символы второй переменной ты изменить не сможешь - компилятор их заносит в константную область памяти (мб как-то по-другому называется - запамятовал).

А сравнивал ты указатели на первый элемент двух строковых массивов.
Через операторы сравнивать можно с классом string, в котором они перегружены.
Yandex
Объявления
09.05.2011, 00:50     сравнивание строк
Ответ Создать тему
Опции темы

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