2016-11-19 7 views
-2

私はC言語でプログラミングしています。文字列の色を変更する方法について多くのことを読んだことがあります。しかし、変数として格納されているときに文字列の色を変更する方法が不思議です。例:C言語で文字列を格納する変数の色を変更する方法

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

"Hello"の色が赤に変わります。しかし、どのような「こんにちは」場合には、このような変数に格納されていた:

char myString[] = "Hello"; 

がどのように我々は値を保持する変数を使用して「こんにちは」の色を変更するためにprintf文では上記のbashコードにMYSTRING組み込むことができます。事前に

おかげで

+1

これはいいえあなたのシェルとは関係がありません。 – 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

あなたが印刷したのと同じ文字列であると仮定し、試してみました –

関連する問題