[英]How do I insert a variable result into a string in C++
我剛開始在 Qt 中學習 C++,我想知道如何將變量結果放入字符串中? 我試圖將它用於一個簡單的應用程序,其中有人將他們的名字放在一個文本字段中,然后按下一個按鈕,它會在一個句子中顯示該名字。 我知道在objective-c中它會像,
NSString *name = [NSString stringWithFormatting:@"Hello, %@", [nameField stringValue]];
[nameField setStringValue:name];
我將如何用 C++ 做這樣的事情? 謝謝您的幫助
我假設我們在這里談論的是 Qt 的QString
類。 在這種情況下,您可以使用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);
有關arg
方法的許多重載的更多詳細信息,請參閱QString 文檔。
你沒有提到你的字符串是什么類型。 如果您使用的是標准庫,那么它將類似於
std::string name = "Hello, " + nameField;
這適用於連接字符串,如果你想插入其他復雜類型,你可以使用這樣的字符串流:
std::ostringstream stream;
stream << "Hello, " << nameField;
stream << ", here is an int " << 7;
std::string text = stream.str();
Qt 可能有自己的字符串類型,應該以類似的方式工作。
我會使用stringstream但我不是 100% 確定它如何適合您的 NSString 案例......
stringstream ss (stringstream::in);
ss << "hello my name is " << nameField;
我認為QString有一些漂亮的助手可以做同樣的事情......
QString hello("hello ");
QString message = hello % nameField;
您可以使用QString::sprintf
。 不過,我還沒有找到使用它的好例子。 (如果其他人找到了,請隨時將其編輯到此答案中)。
您可能有興趣查看有關QString::sprintf
和QString::arg
之間差異的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.