我正在尝试打印出包含数字和字母的char数组元素。我的代码是:
char *receiveInput(char *s) {
scanf("%99s", s);
return s;
}
int main() {
char str[100], inp[50] = "";
printf("Enter string");
receiveInput(str);
char cToStr[3];
int num = 3;
char c = (char)(num);
cToStr[0] = c;
cToStr[1] = str[0];
cToStr[2] = '\0';
strcat(inp, cToStr);
printf("%s\n", inp);
return 0;
}
让我们说"hey"
中的str,inp
应该包含并打印"3h
“但是当cToStr [0] = c(这是一个char 3)时它只会打印'h' 。
如何打印包含数字和字母的元素?
答案 0 :(得分:1)
C对字符/字符串使用ASCII编码。 ASCII值3是不可打印的字符。如果你想要字符'3',你需要使用整数值51.参考http://www.asciitable.com/。
答案 1 :(得分:1)
数字3与字符“3”不同。例如,在ASCII表中,字符“3”具有十六进制0x33
中的整数代码,而在EBCDIC表中,它具有代码0xf3
。
你可以写
int num = 3;
char c = num + '0';
cToStr[0] = c;
假设num我们不到10。