Ir ao conteúdo
  • Cadastre-se

C++ Transformar chars minusculos em maiusculos?


ArielBeaul
Ir à solução Resolvido por devair1010,

Posts recomendados

@devair1010

#include <stdio.h>
#include <ctype.h>
int main(void) {
    char list[4][10] = {"alicate","martelo","papel","luva"};
    int i;

    for(i = 0; i < 10; i++)
        printf("%c", toupper(string[i]));

    return 0;
}

Tentei este código, porém n tive mt ideia de como continuar escrevendo ele, nao sei o que tá errado to be honest

Link para o comentário
Compartilhar em outros sites

  • Solução

@ArielBeaul    seu código corrigido :

 

#include <stdio.h>
#include <string.h>// precisa para usar strings e strlen q conta a qtd de caract
#include <ctype.h>
int main(void)
{
    char list[4][10] = { "abacate","laranja","banana","uva" };
    for (int j = 0; j < 4; j++)                    // é a qtd de linhas da matriz list
    {                                              // ou o mesmo que a qtd de palavras da matriz
        for (int i = 0; i < strlen(list[j]); i++)  // é a qtd de colunas da linha j da matriz 
                                                   // e o mesmo que a qtd de caracteres das palavras
        {
            //list[j][i] = toupper(list[j][i]);    // se quiser armazenar na matriz as maiúculas
            printf("%c", toupper(list[j][i]));
        }
        printf("\n");
    }
    return 0;
}

 

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

@ArielBeaul Não recomendo usar ctype se é iniciante, até porque basta 1 loop varrendo a string e verificando se o caractere está dentro de certo intervalo. Aliás, se realmente é iniciante, seu professor provavelmente não aceitaria o código com funções desse cabeçalho.

É por meio desse tipo de exercício que somos introduzidos à tabela ASCII:

image.png.44d04a155ce5f8b2daf7b1ddf35e8e27.png

Mas enfim, faça o que achar certo :D

 

PS: está programando em C, mas criou o tópico referente à linguagem C++.

  • Curtir 1
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

3 horas atrás, ArielBeaul disse:

char list[4][10] = {"alicate","martelo","papel","luva"};

 

3 horas atrás, ArielBeaul disse:

Tentei este código, porém n tive mt ideia de como continuar escrevendo ele, nao sei o que tá errado to be honest

 

E como chegou até isso? De onde veio o 10? De onde veio a ideia em si?

 

Toda string em C termina com um zero e é isso que você usa para terminar seu loop para cada string

 

Para converter não precisa saber ou usar os códigos: as letras tem valores em sequência. `a` + 1 é ´b´, por exemplo. Então basta ver se está entre ´a´ e ´z´ e somar a diferença entre a letra que está lendo e ´a´. E somar a ´A´.

 

Ex: sua letra é ´f´. ´f´ - ´a´ vale 5. É a sexta letra final. E quanto será ´A´ + 5? ´F´. Só isso... Converteu para maiuscula  

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Outra forma de resolver é como o @Lucca Rodrigues comentou acima com a tabela ASCII fazendo operações em cada caractere da string. Para passar uma letra para maiúscula é só tirar 32 (ou a - A).

 

#include <stdio.h>

char *maiuscula(char *palavra){
    char *p = palavra;
    while(*p){
        if(*p >= 'a' && *p <= 'z'){
            *p -= ('a' - 'A'); 
        }
        p += 1;
    }
    return palavra;
}

int main(){
    char list[4][10] = {
        "alicate", "martelo", "papel", "luva"
    };    
    
    for(int i = 0; i < 4; i += 1){
        printf("%s\n", maiuscula(list[i]));
    }
    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!