[英]char array prints wrong value in C
我现在停留在相同的代码上退出了一段时间。 我试图用从文本文件(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也会在每次执行此功能时递增。
任何帮助,将不胜感激。
您可以使用%c
打印一个字符,而使用字符串说明符%s
代替:
printf("char c:%c char array%s\n",c,cStr);
注意: iCounter
实际上并未增加:
cStr[iCounter++] = c;
cStr[iCounter] = '\0';
使用%s
打印字符串。 %c
用于打印唯一字符。
从printf 手册页
C
如果不存在l修饰符,则将int参数转换为无符号字符,并写入结果字符。 如果存在l修饰符,则通过调用wcrtomb(3)函数将wint_t(宽字符)参数转换为多字节序列,转换状态从初始状态开始,并写入结果的多字节字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.