Vikdal Skrevet 20. april 2008 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
Arne Skrevet 20. april 2008 Skrevet 20. april 2008 Sjekk ut denne: http://notfaq.wordpress.com/2007/08/04/cc-...pperlower-case/
Vikdal Skrevet 20. april 2008 Forfatter 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
Vial Skrevet 4. mai 2008 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; }
Jaffe Skrevet 4. mai 2008 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; }
Mr.Garibaldi Skrevet 7. mai 2008 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
GeirGrusom Skrevet 7. mai 2008 Skrevet 7. mai 2008 Er det egentlig engang nødvendig å sjekke med isupper?
Mr.Garibaldi Skrevet 7. mai 2008 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...
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å