如何将 char 数组的特定索引传递给 c 中的 outtextxy() 函数第三个参数

How to pass a particular index of char array to outtextxy() function's third parameter in c

我实际上想延迟打印文本的每个字符(char 数组的每个索引);因此,我正在尝试开发一个自定义函数,它使用 Turbo C 中的 outtextxy 获取 x 坐标、y 坐标、x 增量和 y 增量、延迟和指向文本字符数组的指针。

这是我的代码:

void printing(int x, int y, int xinc, int yinc, int d, char word[50]){
    int i;
    int size = strlen(word);
    setcolor(LIGHTGREEN);
    for(i = 0; i < size; i++){
        outtextxy(x,y,word[i]);
    }
    x += xinc;
    y += yinc;
    delay(d);
}

但这每次都会给我一个错误:

Type mismatch in parameter '__textstring' in call to 'outtextxy'

我该如何解决这个问题?

outtextxy函数的第三个参数必须是指向nul-terminated字符串(或char数组)的指针,但你传递的是单个个字符。

作为快速修复,您可以只声明一个 2 字符数组(一个用于 nul 终止符)并在每次调用之前将单个 char 复制到其中:

void printing(int x, int y, int xinc, int yinc, int d, char word[50])
{
    int i;
    int size = strlen(word);
    setcolor(LIGHTGREEN);
    for (i = 0; i < size; i++) {
        char text[2] = { word[i], 0 }; // This character plus nul terminator
        outtextxy(x, y, text);  // Array "decays" to a pointer to first char
    }
    x += xinc;
    y += yinc;
    delay(d);
}

但是,在 Turbo-C 图形库中 可能 有一个不同的函数,例如 putcharxy(int x, int y, char c),您可以使用它来输出给定坐标处的单个字符。 (我无权访问该库或任何权威的在线文档,尽管 this source 中似乎没有声明这样的函数。)