如何在QT中获得strnset工作

How to get strnset working in QT?

本文关键字:strnset 工作 QT      更新时间:2023-10-16

不确定在QT中获得"strnset"工作是必要的吗?

#include <stdio.h>
#include <string.h>

char mouse[1000];
strnset(mouse,'', 1000);

strnset是C的扩展,并且在许多编译器上不可用(实际上我从未听说过它)。这与Qt没有任何关系。

在Qt中有几种方法可以实现相同的效果。看一下QByteArray

的不同选项
  • 使用QByteArray(size,ch)构造函数将ch重复size
  • 创建一个只包含""的QByteArray,并使用重复函数生成一个1000 的QByteArray。
  • 创建一个空的QByteArray并使用setNum看起来会起作用

正如在评论中提到的,如果你想在Qt类之外做这件事,c++标准算法std::fill_n看起来会做你想做的。

可用选项:

  1. 使用memset
  2. 使用std::fill_n
  3. 使用qFill
  4. 使用QVector<char>,它有fill方法。
  5. (假设您不需要"char",而是字符串)QString s = QString(1000, QChar('a'));
  6. (假设你需要缓冲):QByteArray .