繁体   English   中英

如何在C中将int打印到char类型的数组变量中?

[英]How do I print int into array variable of char type in C?

输入迷宫:

##..##############
##..............##
########..########
##........##....##
##..########..####

预期输出:

##00##############
##++02++04++06++##
########++########
##++08++06##----##
##10########--####

在这里,我将迷宫作为2d数组存储到结构中,如下所示:

struct mazecells{
    char symbol;
    int reachable;
    int visited;
    int clear;
    int costs;
};

typedef struct maze {
    struct mazecells M[BUFFERSIZE][BUFFERSIZE];
    int startx, starty;
    int numrows, numcolumns;
    int initdir;
}maze_t

因此,每当我的程序经过maze path'.' ,我已使用maze->M[pos.y][pos.x].costs = <cost_value>将成本分配给该路径。
现在,在如上所述打印输出时,我需要打印成本值而不是迷宫符号。 我已经写了下面的代码,但是它正在打印一些随机的垃圾字符。 我该如何实现。

    if (maze->M[i][j].costs !=0)
    {
        printf("%c",  '0');
        printf("%c",  maze->M[i][j].costs);
    }

它给出下面的输出:

##++##############
##0☺0☻0♥0♦0♣0♠0##
########0♣########
##0     00♠##....##
##++########..####

如果要将“ cost”中的数字转换为字符串,则必须使用以下之一:1.使用%d代替%c。 2.使用ascii表并将您的数字转换为char。 3.将%s与itoa功能一起使用。 实际上,您正在打印数字(成本)的ASCII代码,而不是数字

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM