如何在C中的字符串中打印数字作为字符?

时间:2015-08-06 16:44:43

标签: c

假设有数字

int number;
scanf("%d",&number);
char ch[3];
ch[0]='a';
ch[1]=number;
ch[2]='b'

我希望输出为a42b(如果用户输入42为数字)或a43b(如果是用户) 输入43作为数字)。我不希望字符值为42或43(表示输出为* b或a + b)。

2 个答案:

答案 0 :(得分:0)

一般来说答案是你不能。虽然你可以像你一样进行任务,对于适合char的值,你怎么知道它是一个输出的数字而不是一个字符?

我看到它的唯一方法是,如果你知道数组中的第二个字符总是是一个数字而不是一个字符,那么你可以将它打印成一个字符,一个数字和一个角色:

printf("%c%d%c\n", ch[0], ch[1], ch[2]);

答案 1 :(得分:0)

这里需要的是snprintf,它允许您进行printf样式格式化并将结果放在字符串中。

char ch[10];
int number;
scanf("%d",&number);
snprintf(ch,sizeof(ch),"a%db",number);