2016-11-19 8 views
-2

저는 C로 프로그래밍 중이며 문자열의 색상을 변경하는 방법에 대해 많이 읽었습니다. 하지만 변수로 저장할 때 문자열의 색을 변경하는 방법을 궁금하네요. 예 :C에서 문자열을 저장하는 변수의 색상을 변경하는 방법

printf ("\e[1;31m Hello \e[0m\n"); 

이렇게하면 "Hello"의 색상이 빨간색으로 바뀝니다. 하지만 "안녕하세요"경우이 같은 변수에 저장된 :

char myString[] = "Hello"; 

우리가 어떻게 값을 유지하는 변수를 통해 "안녕하세요"의 색상을 변경할 수의 printf 문에 위의 bash는 코드에 mystring에 탑재 되 있습니다. 사전에

덕분에

+1

"bash code"라고하며 쉘과 아무 관련이 없습니다. – melpomene

+0

질문에 Bash 코드가 없습니다. 'red = $ '\ e [1; 31m''과'plain = $'\ e [0m''] 변수를 만들고 echo $ red $ myString $ plain "'또는'printf ' % s % s % s \ n ""$ red ""$ myString ""$ plain "'. –

+1

문자열 변수의 내용을'printf' 할 때'% s '을 사용할 수 있습니다. – melpomene

답변

0

당신은 당신이 할 수있는 일은 문자열을 보유하고 간단한 구조를 만들 것입니다 수없고 색상의 :

struct ColoredString 
{ 
    char myString[100]; 
    char coloredString[50]; 
} 

사용 :

struct ColoredString cs; 
strcpy(cs.myString,"Hello"); 

SetColor(cs,"\e[1;31m", "\e[0m"); 

puts(cs.coloredString); 

setColor를 함수 :

void SetColor(ColoredString cs, char *c1, char* c2) 
{ 
    strcpy(cs.coloredString,c1); 
    strcat(cs.coloredString,cs.myString); 
    strcat(cs.coloredString,c2); 
} 
+0

이 작동하지 않았다. 질문이 인쇄되었습니다. – jim

+0

인쇄 할 때와 동일한 문자열로 가정합니다. 시도했을 때 작동했습니다. –

관련 문제