for を使用して char* にアルファベット文字を書き込む方法を見つけるのに苦労しています。文字のテーブルを使用してそれを行うだけでよい場合は、次のようになります
for(i=0;i<26;i++) {
character[i] = 'a' + i;
}
しかし、char * を要求する関数があるので、"something"
の代わりに使用する必要があり'something'
ます。手伝って頂けますか?
ありがとうございました!
編集
申し訳ありませんが、以前は明確ではありませんでした。かなり疲れているようです。
XPM の構造は次のとおりです。
struct XPM {
unsigned int width;
unsigned int height;
unsigned char cpp;
unsigned int ncolors;
Color *colta;
unsigned int *data[];
};
したがって、私が使用しなければならない関数は次のとおりです。
void setXPMColor(XPM *imagine,
unsigned int index,
unsigned char r,
unsigned char g,
unsigned char b,
char *charpattern) {
imagine -> colta [ index ].r = r;
imagine -> colta [ index ].g = g;
imagine -> colta [ index ].b = b;
imagine -> colta [ index ].pchars = charpattern;
}
main() 関数には、次のコード行があります。
for( i = 0; i < NCOLORS; i++ ) {
setXPMColor( image, i, 5 * i, 0, 0, SOMETHING);
}
関数のSOMETHINGの代わりに何を入れることができるので、インデックスごとに異なる文字を使用できますか? (各エントリに新しい文字または任意の種類の記号を入れることを考えていました). 後で、シンボルを使用して画像を生成する必要があります。
したがって、最終的には次のようなものが必要になります。
printf("%s\n", imagine->colta[0].pchars); //a
printf("%s\n", imagine->colta[1].pchars); //b
printf("%s\n", imagine->colta[3].pchars); //c
//etc
編集2:
画像を作成する XPM ファイルを生成する必要があるため、ファイルに文字を描画する必要があります。setXPMColor
問題は、関数に文字を与えることです。送信すると char* が必要'a'
になるためです。たとえば、型の不一致と表示され、関数には char* が必要ですが、 int を受け取ります。のようなブロック引用符で文字を送信した場合にのみ機能します"a"
が、反復ごとに文字をインクリメントすることはできません。それが役立つことを願っています!
ありがとうございました!