C 打印整个字符串变量(忽略\0终止)

标签 c variables printf null-terminated

举个例子胜过千言万语:

unsigned char *hello = (unsigned char*)malloc(STR_LEN * sizeof(unsigned char));
const char *str= "haha";
memcpy(hello, str, strlen(str) + 1);

如何打印整个 hello 变量的内容(printf("%s",..) 只会尊重 之前的部分\0-终止而不是所有 STR_LEN 个字符)。

最佳答案

您可以使用fwrite 写入未格式化的数据:

char buf[4] = { 1, 2 };

fwrite(buf, 1, 4, stdout);   // writes the bytes 1, 2, 0, 0

您可以使用 fwrite(hello, 1, STR_LEN, stdout),但请注意您不能读取未初始化的数据(因此您应该使用 calloc或以其他方式初始化数据)。

关于C 打印整个字符串变量(忽略\0终止),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22272712/

相关文章:

r - 如何在不使用列名的情况下在 flextable 对象中指定大标记分隔符?

c++ - fprintf 与 std::ofstream 的非常令人惊讶的性能(fprintf 非常慢)

c - 有没有办法使用 C 标准库来转换 string----->int 并跟踪解析的字符数?

c - 传递 2 个输入字符串进行比较

从 FORTRAN 调用 C 代码

javascript - PHP 解析 heredoc 中的 JavaScript 内容

java - 如何使用printf以某种格式打印出来

c - 如何在以下简单的设备读取程序中使用 'cat'

java - 从用户输入java覆盖变量

javascript - 连接 JQuery 变量