Vikdal Skrevet 20. april 2008 Del Skrevet 20. april 2008 (endret) Heisann Lærer veldig mye av å lese de forskjellige trådene her på forumet, men det er en ting jeg ikke har funnet noen løsning på. Jeg har følgende streng char* n = const_cast<char*> (name.c_str()); Jeg ønsker at uansett hva name inneholder så skal jeg få n til å inneholde det samme ordet men i lowercase. name kan være bare store, bare små eller en kombinasjon av store og små bokstaver. Jeg finner ingen funksjon som gjør dette for meg. Må jeg lage den selv? Noen som kan hjelpe meg litt ? Edit: Saken er nå løst Endret 20. april 2008 av Nero Burningwr00m Lenke til kommentar
Arne Skrevet 20. april 2008 Del Skrevet 20. april 2008 Sjekk ut denne: http://notfaq.wordpress.com/2007/08/04/cc-...pperlower-case/ Lenke til kommentar
Vikdal Skrevet 20. april 2008 Forfatter Del Skrevet 20. april 2008 Hei og takk for svar Jeg prøvde med den metoden men da fikk jeg feilmelding under kompilering. Var noe med at "n" ikke var av samme klasse elns. Sikkert fordi n er char og den funksjonen er beregnet for strenger ? Det som derimot fungerte var følgende kodebit char* n = const_cast<char*> (name.c_str()); for (int i=0; i<strlen(n); i++) n[i]=tolower(n[i]); Takk for hjelpen Lenke til kommentar
Vial Skrevet 4. mai 2008 Del Skrevet 4. mai 2008 Selv om saken er løst så pirret den nysgjerrigheten min litt, så mekket en liten funksjon for å konvertere pekere av char til lowercase peker til char. char* toLower(char* word) { char* alphabet = "abcdefghijklmnopqrstuvwxyz"; int alphabetCounter = 0; for(int i=0;i<strlen(word);i++) { for(char letter = 'A';letter < 'Z';letter++) { if(word[i] == letter) { word[i] = alphabet[alphabetCounter]; } alphabetCounter++; } alphabetCounter = 0; } return word; } Lenke til kommentar
Jaffe Skrevet 4. mai 2008 Del Skrevet 4. mai 2008 Er vel egentlig nok med noe sånt: char* strToLower(char* word) { for (int i = 0; i < strlen(word); i++) { if (word[i] >= 'A' && word[i] <= 'Z') { word[i] += 32; } } return word; } Lenke til kommentar
Mr.Garibaldi Skrevet 7. mai 2008 Del Skrevet 7. mai 2008 (endret) Så lenge du bruker pekere er det vel enklere med #include <cctype> ... void strToLower(char* word) { while(*word++ = tolower(*word)); evt. while(*word++) if(isupper(*word)) *word = tolower(*word); } [EDIT] La til metodenavn.. Endret 7. mai 2008 av Mr.Garibaldi Lenke til kommentar
GeirGrusom Skrevet 7. mai 2008 Del Skrevet 7. mai 2008 Er det egentlig engang nødvendig å sjekke med isupper? Lenke til kommentar
Mr.Garibaldi Skrevet 7. mai 2008 Del Skrevet 7. mai 2008 Er det egentlig engang nødvendig å sjekke med isupper? Nei, er vel egentlig ikke det, men tok den med så han ble klar over den... Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå