hej. Frågan är vad du menar med en "chararray". Den som finns i .NET (?) eller en enkel char []? hehe,. ja så enkelt kanske det var =) Jag antar att string har samma egenskaper gällande sånt som strcmp. Om du skall göra en massa strängoperationer är det bäst att skaffa sig nåt färdigt bibliotek. Finns säkert flera men jag använder boost. Naturligtvis, boost har ju det mesta som saknas i standarden. Tänkte inte på det...konvertera string to char-array?
Jag skulle vilja konvertera en sträng av typen string till en chararray.
finns det något enkelt sätt att göra detta på eller är det krångligt?
Det kanske är onödigt? Det jag egentligen vill göra är en strcmp() på två st strängar. fast det går väl inte när de är av typen string??Sv: konvertera string to char-array?
Om du vill jämföra två strängar av typen string så använder du == etc. Det är definierat för string.
Om du verkligen vill ha en char [] så kan du få det från c_str(). Det är i stort sett bara i kopplingar till gammal kod eller api-kod som kräver något sådant.Sv:konvertera string to char-array?
att man alltid ska krångla till det...
Dock gör väl "==" skillnad på stora och små bokstäver?
Man kanske kan konvertera en string till bara små bokstäver.
tack för alla svar!Sv: konvertera string to char-array?
Om inte annat är det väldigt enkelt att göra precis som du säger, konvertera två strängar till små bokstäver och sen jämföra dem.
Det finns dock inte inbyggt i stringklassen. Däremot kan du använda transform, t.ex. som här: http://www.msoe.edu/eecs/cese/resources/stl/string.htm#StringCaseConversionSv: konvertera string to char-array?
Då kan man enkelt göra saker som
iequals(str1,str2) // case-insensitive compare
starts_with(str1, "abc"); // börjar strängen med abc istarts... för case-insensitive
trim_left_if(str, is_any_of(" 0"); // ta bort blanktecken och nollor i början
all(str, is_digit()) // består strängen av enbart siffror?
samt lite mer komplicerade saker som
find_erase_all(str, token_finder(!is_digit())) // ta bort allt som inte är siffror
vector<string> v;
split(v, str, is_any_of(";,.-")); // dela upp en sträng i delarSv:konvertera string to char-array?