Ir ao conteúdo

C Mudar a cor de um char numa matriz de strings.


Ir à solução Resolvido por devair1010,

Posts recomendados

Postado

Estava tentando mudar a cor de uma posição especificamente caso a palavra digitada tenha alguma letra na mesma posição da primeira, mas sem muito sucesso.

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define VERMELHO "\x1B[31m"

int main()
{
    char menu[8][6];
    int cont, cont2, contInterface, contInterface2;

    for(cont = 1; cont < 8; cont++)
    {
        for(cont2 = 0; cont2 < 5; cont2++)
        {
            menu[cont][cont2] = '*';
        }
    }

    cont = 1;

    for(;cont < 8; cont++)
    {
        system("clear");
        
        for(contInterface = 0; contInterface < 7; contInterface++)
        {
            for(contInterface2 = 0 ;contInterface2 < 5; contInterface2++) printf("%c   ", menu[contInterface][contInterface2]);
            printf("\n\n");
        }

        if(menu[7][4] == '*')
        {
            for(int checagemPalavra = 0; checagemPalavra < 1;)
            {
                printf("Digite uma palavra: ");
                scanf("%s", menu[cont]);

                if(strlen(menu[cont]) != 5)
                {
                    printf("Tamanho incorreto, digite novamente.\n");
                }
                else
                {
                    for(cont2 = 0; cont2 < 5; cont2++) menu[cont][cont2] = toupper(menu[cont][cont2]);
                    checagemPalavra = 1;
                }
            }
        }
        for(int cor = 0; cor < 5; cor++)
        {
            if(menu[cont][cor] == menu[0][cor]) menu[cont][cor] = 'VERMELHO';
        }
    }
}

 

  • Curtir 1
  • Solução
Postado

@Chewbaccaun     você quer mudar a cor  ou escrever o nome da cor ?  , e se você estiver usando o windows , você pode usar essa função textcolor :

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#define _h GetStdHandle(STD_OUTPUT_HANDLE)
int textcolor( int , int );/// prototipo de funcao
int main (void)
{
  int cor_antes,fundo_antes,cor;
  HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE);
  CONSOLE_SCREEN_BUFFER_INFO c;
  if(GetConsoleScreenBufferInfo(h, &c))
  {
    cor         = ( c.wAttributes & 0xFF);
    cor_antes   = ( c.wAttributes & 0xFF) & 0x0F;
    fundo_antes = ((c.wAttributes & 0xFF) >> 4) & 0x0F;
  }
  char string1 [20];
  printf("Entre com string1\n");
  scanf("%s",&string1);
  textcolor(15,12);  /// letra verde em fundo vermelho
  printf("String em azul %s\n",string1);
  textcolor(cor_antes,fundo_antes);
  system("pause");
  return 0;
}
int textcolor( int letras , int fundo )
{
  SetConsoleTextAttribute( _h , letras +( fundo << 4 ) );
  return 0;
}

, que modifica  cor de letras  e do fundo da tela , .

  • Curtir 1

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!