Ir ao conteúdo
  • Cadastre-se

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


Ir à solução Resolvido por devair1010,

Posts recomendados

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
Link para o comentário
Compartilhar em outros sites

  • Solução

@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
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!