我现在被困在相同的代码上退出一段时间了。我正在尝试使用从文本文件(ascii)中读取的字符填充char数组。但由于某些原因,当我打印char数组时,它只显示字母H.
代码:
void append(char c)
{
//int len = strlen(cStr);
cStr[iCounter] = c;
cStr[iCounter + 1] = '\0';
printf("char c:%c char array%c\n",c,cStr);
}
char数组(cStr)在此函数之外声明,因为我需要从不同的函数访问它。 iCounter也是如此,每次执行此函数时都会递增。
任何帮助都将不胜感激。
答案 0 :(得分:3)
使用%c
使用字符串说明符%s
来打印一个字符:
printf("char c:%c char array%s\n",c,cStr);
注意:iCounter
实际上并没有增加:
cStr[iCounter++] = c;
cStr[iCounter] = '\0';
答案 1 :(得分:1)
使用%s
打印字符串。 %c
用于打印唯一字符。
来自printf man page
<强> C 强>
如果不存在l修饰符,则将int参数转换为 unsigned char,写入结果字符。如果是l 如果存在修饰符,则转换wint_t(宽字符)参数 通过调用wcrtomb(3)函数来调用多字节序列 转换状态从初始状态开始,结果 写了多字节字符串。