在 C 中清除 char 数组

标签 c arrays sockets tcp

我已经声明了 char data[101]; 然后从套接字中读取消息到它(服务器 - 客户端通信)。在屏幕上显示消息后,我想清除/清空该字符数组。我尝试了 memset(data, 0, sizeof(data))bzero(data, sizeof(data)); 我认为它仍然没有清除它。在收到第一条消息后的输出中,我还得到了一些奇怪的字符:��|V�,在它们之后还显示了消息。现在我不知道那是来自客户端还是服务器端。我尝试在两者上都清除它,但结果没有任何不同。

这是我发送消息的方式:

char data[101];
read(0, data, 101);
dprintf(socket_fd, data);
bzero(data, sizeof(data));

最佳答案

这是另一种替代方案

//Declare and initialize to NUL characters.
char data[101] ="";  

//fgets() will take care of out of boundary issue.
 if (fgets(stdin, data, sizeof(data))
    dprintf(socket_fd, "%s", data);  // Send the data

关于在 C 中清除 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44128514/

上一篇:C 对偶表达式

下一篇:C 函数和数组

相关文章:

c - 使用 char 指针的段错误 (C)

objective-c - Apple iOS ASlog,轮询消息.. [代码]

c - 使用 Netbeans/gdb 调试 C 会立即终止并出现 SIGSEGV?

c - 字符串数组随机排序

arrays - 声明具有特定类型但任意维数的数组

python-3.x - 如何对字符串 "undo" `bytes()`进行编码?

c# - socketio4net 错误初始化握手

c - 是否有任何库来解析 C 中的 TCP/IP/UDP header

C++ 中止核心在执行结束时转储

c# - C#套接字实现比较