繁体   English   中英

char数组在C中打印错误的值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM