我想做这样的事情:
QString string;
// do things...
std::cout << string << std::endl;
Run Code Online (Sandbox Code Playgroud)
但代码不编译.如何将qstring的内容输出到控制台(例如出于调试目的或其他原因)?如何转换QString为std::string?
我希望"字符串化"一个数字并添加零填充,就像printf("%05d")如果数字小于5位,如何添加前导零.
我试图通过以下方法将QString转换为char*类型,但它们似乎不起作用.
//QLineEdit *line=new QLineEdit();{just to describe what is line here}
QString temp=line->text();
char *str=(char *)malloc(10);
QByteArray ba=temp.toLatin1();
strcpy(str,ba.data());
Run Code Online (Sandbox Code Playgroud)
你能用这种方法详细说明可能的缺陷,还是提供另一种方法?
我std::string content知道包含UTF-8数据.我想把它转换为QString.我该怎么做,避免Qt中的from-ASCII转换?
当我知道必要的索引时,我想QString从另一个人那里得到QString.例如:主字符串:"这是一个字符串".我想QString从前5个符号创建新的并获得"This".
输入:第一个和最后一个字符编号.
输出:新的QString.
如何创建它?
PS不仅前几个字母,也来自中间的字母,例如从5到8.
我有一个QString在我的消息来源.所以我需要将它转换为没有"Kb"的整数.
我试过Abcd.toInt()但它不起作用.
QString Abcd = "123.5 Kb"
Run Code Online (Sandbox Code Playgroud) 我QByteArray和他有问题QString.
我正在读取文件并将其信息存储在一个文件中QByteArray.该文件是unicode,因此它包含以下内容:t\0 e\0 s\0 t\0 \0 \0
我试图将此值与我的指定值进行比较,但它失败了,因为在调试器中我看到它不是unicode字符串.
代码将解释一切:
QByteArray Data; //contains unicode string "t\0 e\0 s\0 t\0 \0 \0"
QString myValue = "test"; //value to compare.
if(Data.contains(myValue))
//do some stuff.
else
//do other stuff.
Run Code Online (Sandbox Code Playgroud)
在调试器中,它向我显示变量Data具有值"t\0 e\0 s\0 t\0 \0 \0"并myValue具有值"test".我该如何解决?
有没有简单的方法来完成以下工作?我的意思是有没有帮助类Qt准备字符串qDebug?
QString s = "value";
qDebug("abc" + s + "def");
Run Code Online (Sandbox Code Playgroud) 我想在我的程序中使用switch-case但编译器会生成错误.我如何使用该switch语句QString?
编译器给我这个错误:
switch expression of type 'QString' is illegal
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
bool isStopWord( QString word )
{
bool flag = false ;
switch( word )
{
case "the":
flag = true ;
break ;
case "at" :
flag = true ;
break ;
case "in" :
flag = true ;
break ;
case "your":
flag = true ;
break ;
case "near":
flag = true ;
break ;
case "all":
flag = true ;
break ;
case …Run Code Online (Sandbox Code Playgroud)