如何在C++中将变量结果插入到字符串中

Nat*_*tos 3 c++ qt

我刚刚开始在Qt学习C++,我想知道如何将变量结果放入字符串中?我正在尝试将此用于一个简单的应用程序,其中有人将他们的名字放在文本字段中,然后按下按钮,它会在一个句子中显示名称.我知道在Objective-c中它会是,

NSString *name = [NSString stringWithFormatting:@"Hello, %@", [nameField stringValue]];
[nameField setStringValue:name];
Run Code Online (Sandbox Code Playgroud)

我怎样才能用C++做这样的事情?谢谢您的帮助

Ken*_*oom 8

我假设我们在QString这里讨论Qt的课程.在这种情况下,您可以使用以下arg方法:

 int     i;           // current file's number
 long    total;       // number of files to process
 QString fileName;    // current file's name

 QString status = QString("Processing file %1 of %2: %3")
                 .arg(i).arg(total).arg(fileName);
Run Code Online (Sandbox Code Playgroud)

有关该方法的许多重载的更多详细信息,请参阅QString文档arg.


K-b*_*llo 6

你没有提到你的字符串是什么类型。如果您使用的是标准库,那么它将类似于

std::string name = "Hello, " + nameField;
Run Code Online (Sandbox Code Playgroud)

这适用于连接字符串,如果你想插入其他复杂类型,你可以使用这样的字符串流:

std::ostringstream stream;
stream << "Hello, " << nameField;
stream << ", here is an int " << 7;

std::string text = stream.str();
Run Code Online (Sandbox Code Playgroud)

Qt 可能有自己的字符串类型,应该以类似的方式工作。