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?
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?
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>