Gå til innhold

*Løst* Konvertere streng til lowercase


Anbefalte innlegg

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 av Nero Burningwr00m
Lenke til kommentar
Videoannonse
Annonse

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
  • 2 uker senere...

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

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 av Mr.Garibaldi
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...