Vad jag undrar är varför inte denna kod fungerar: Gissning: "Jag får helt enkelt "fan" utskrivet på skärmen vilket som ni ser inte är meningen Ja, strcmp eller strcmpn är det som gäller när det är frågan om C-strängar. I C++ bör man istället använda string. char forsta[10] ="hej"; skapar en array med chars och forsta är en pekare som pekar på det första elementet i arrayen. Även den andra raden allokerar nytt minna så när du gör forsta == andra så kollar du egentligen om arrayerna ligger på samma plats vilket de inte SKA göra. Tack för det svaret. Och en följdfråga. Vet du någonstans man kan få reda på mer om vad std::string innehåller för funktioner/metoder och vad de gör.. Det är lite svårt att använda en class man inte vet något om.. Här är den första länken jag fick upp när jag sökte på stl och string.Att jämföra variabler av datatypen char.
char forsta[10]="hej";
char andra[10]="hej";
if (forsta == andra)
std::cout << "hej";
else
std::cout << "fan";
std::cout << std::endl;
Jag får helt enkelt "fan" utskrivet på skärmen vilket som ni ser inte är meningen
vad skall man använda istället för == när man jämför char variabler.
Tack på förhand
FredrikSv: Att jämföra variabler av datatypen char.
if (forsta[]==andra[])
Vet dock inte helt säkert, det var några år sedan jag grötade med c... :)Sv: Att jämföra variabler av datatypen char.
vad skall man använda istället för == när man jämför char variabler."
strcmp?
http://www.phim.unibe.ch/comp_doc/c_manual/C/FUNCTIONS/strcmp.html
Men förmodligen har C++ ett bättre sätt att hantera strängar.Sv: Att jämföra variabler av datatypen char.
Sv: Att jämföra variabler av datatypen char.
Istället bör du jämföra strängen tecken för tecken
bool same = true;
for(int i = 0; i < 10; i ++) {
same = same && (forsta[i] == andra[i]);
}
vilket C funktionerna strcmp och strcmpn gör åt dig.
Men om du ska programmera C++ SKA du använda std::string istället som ger massor av fördelar och gör jämförelser mycket lättare.Sv: Att jämföra variabler av datatypen char.
Sv: Att jämföra variabler av datatypen char.
http://www.msoe.edu/eecs/cese/resources/stl/
Borde kanske förklara; std::string (och allt annat i namespace std) hör till ett standardbibliotek som kallas STL (Standard Template Library). Ska man använda C++ seriöst bör man se till att lära sig det!