我想在forloop中做這樣的事情:Name[i] = "Name" + (i+1)
,以便數組的值爲:Name[0] = Name1
,Name[1] = Name2
,Name[2] = Name3
。如何將字符串數組的值賦給「Name」+#,例如。 Name1,Name2,Name3等。C++
除了將i
的值轉換爲char
並將其添加到字符串旁邊,還有更簡單的方法嗎?
我想在forloop中做這樣的事情:Name[i] = "Name" + (i+1)
,以便數組的值爲:Name[0] = Name1
,Name[1] = Name2
,Name[2] = Name3
。如何將字符串數組的值賦給「Name」+#,例如。 Name1,Name2,Name3等。C++
除了將i
的值轉換爲char
並將其添加到字符串旁邊,還有更簡單的方法嗎?
當使用C++ 2011,您還可以使用std::to_string()
:
name[i] = "Name" + std::to_string(i + 1);
這應該避免需要創建一個字符串流。
這std::stringstream
是什麼:
std::stringstream ss;
ss << "Name" << (i+1);
...
name[i] = ss.str();
是否有任何特殊的原因不使用'std :: ostringstream'? (請注意'std ::'後面有趣的'o') – 2012-02-20 00:10:53
@DietmarKühl:要使用它的任何特殊原因? – 2012-02-20 00:11:46
雖然'std :: istream'並不真正添加任何成員,但該對象更簡單,構建速度稍快。由於開放模式被傳遞給'std :: stringbuf',如果該類知道它只用於輸入或輸出(儘管大多數實現忽略這一點),它可以避免一些設置。最後,它指出了流的實際用途(當然,我設法在'o'的時候使用'i')。 – 2012-02-20 00:16:29
如果你的編譯器還沒有提供它,你可以找到幾個不同的實現選擇[這裏](http://stackoverflow.com/questions/4351371/c-performance-challenge-integer-to-stdstring-conversion ) – 2012-02-20 00:25:03