打印具有numbes和字母的char数组元素

时间:2016-11-13 01:26:31

标签: c char

我正在尝试打印出包含数字和字母的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' 。

如何打印包含数字和字母的元素?

2 个答案:

答案 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。