2
respostas

Como converter a string em maiúsculo?

Eu ja sei que para converter letra em maiúsculo basta usarmos a função toupper() ; mas para converter uma string a função não funcionou, como poderia fazer?

2 respostas

Olá. Tente isto:

#include <stdio.h>
#include <ctype.h>

void ucase(char* s) {
    while(*s++) {
        *s = toupper(*s);
    }
}

int main(void) {
    char frase[100] = "Quero esta frase em uppercase!";

    ucase(frase);

    printf("Resultado: [%s]\n", frase);

    return 0;
}

Olá, tudo bem? Também tive essa dúvida e tem de várias formas de "uppar" uma string. Achei mais fácil esse:

  cout << "Digite a nova palavra." << endl;
   string nova_palavra;
   cin >> nova_palavra;
   for(char & c : nova_palavra){
      c = toupper(c);
   }
   cout << "Resultado: " << nova_palavra << endl;

seria o mesmo formato do for igual da aula... Mas por alguma razão só funciona com e comercial (&) para uppar cada letra.

O toupper( ) só deixa letra/char em maiúsculo e se perde quando pedimos para fazer com string, então precisa fazer o laço de repetição para uppar cada letra da String.

Outro jeito:

cout << "Digite a nova palavra em letras maiúsculas." << endl;
 string nova_palavra;
 cin >> nova_palavra;
 for_each(nova_palavra.begin(), nova_palavra.end(), [](char &c)
            { c = ::toupper(c); });

   cout << "Resultado: " << nova_palavra << endl;

Esse precisa do #include <algorithim>