在字母中写字母*

时间:2014-02-27 23:39:49

标签: c char alphabet

我正在努力寻找一种方法来使用for来写字母字母*。 如果我只需要使用表格来表示,那就像这样

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"这样的块引号发送它时才有效,但是我不能在每次迭代时递增字母。我希望它有所帮助!

谢谢!

2 个答案:

答案 0 :(得分:1)

char *是指向您现有代码将起作用的单个字符或字符数组的指针。只要确保你传入函数的char *至少有26个元素长,否则你将修改数组外的内存(这可能会或可能不会使你的程序崩溃)。

您可以像这样创建这样的数组:

char * my_character_array = (char*) malloc(26);

答案 1 :(得分:0)

我不确定这是不是你要问的但是我会尝试转换为Ascii http://web.cs.mun.ca/~michael/c/ascii-table.html

这将允许您像字母一样循环显示字母