Porownywanie stringow

0

witam,

Takie coś nie zadziała:

string zmienna="napis";
string zmienna_nzd;
cin>>zmienna_nzd;
if(strcmp(zmienna_nzd,zmienna)==0)
cout<<"takie same"<<endl;

muszę użyć tablicy char'ow, ale może jednak można użyc string'a ? każdy poradnik na internecie pokazuje działanie funkcji comapre na zdefiniowanych zmiennych bo owa funkcja w zasadzie przyjmuje wskaźnik na łańcuch znakowy, ale może da się zrobić tak aby zadziałały powyższe linijki ?

0

Chodzi ci o coś takiego?

strcmp(zmienna_nzd.c_str(),zmienna.c_str())

Tylko po co?

0

strcmp działa na tablicy charów.
Dla std::string mamy:

if ( zmienna == zmienna_nzd ) cout << "takie same\n"; 

http://www.cplusplus.com/reference/string/operators/

0

ah, no tak macie rację :) chodziło właśnie o to, że porównujemy stringi przez operator "=" , tylko się ośmieszyłem, dzięki. Pozdrawiam.

0
kruczek23 napisał(a):

ah, no tak macie rację :) chodziło właśnie o to, że porównujemy stringi przez operator "=" , tylko się ośmieszyłem, dzięki. Pozdrawiam.

= to operator przypisania, == to operator porównania.

0

istnieje rowniesz bardzo fajna metoda klasy string::compare(string)

7

kwiecień 2012, c/c++ - programiści nadal heroicznie pokonują problemy przy porównywaniu dwóch napisów.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.