我在想,如果有可能在C++中包含數據的字符串中包含數據,我不想做一串或一串字符串 假設我有一個字符串MV
MV =
「你好
新
世界」
你好,新的世界是不同的線路。現在,如果我們打印的MV那麼hello,新的世界應該來在不同的行。如何把一個新的行在一個字符串中的c + +
我也想在關於競爭力的節目,如果串聯查詢的所有答案在一個單一的字符串,然後輸出回答或COUT通過一個所有查詢一個,將有兩個輸出
一個時間差我在想,如果有可能在C++中包含數據的字符串中包含數據,我不想做一串或一串字符串 假設我有一個字符串MV
MV =
「你好
新
世界」
你好,新的世界是不同的線路。現在,如果我們打印的MV那麼hello,新的世界應該來在不同的行。如何把一個新的行在一個字符串中的c + +
我也想在關於競爭力的節目,如果串聯查詢的所有答案在一個單一的字符串,然後輸出回答或COUT通過一個所有查詢一個,將有兩個輸出
一個時間差我想我的字符串變量來保存該信息格式因此 像我的字符串變量mv應該有一些字符串在第一行和一些 字符串在第二行,這整個應該像英格爾串
什麼是C++中的字符串(std::string
)?
它是一個容器,用於動態調整大小的字符數組,配備了 以及用於操作該數組的方法。
字符數組是:
characters: |c0|c1|c2|c3|...|cN|
這是一個std::string
的性質。對此你無能爲力。
什麼是行(文字)?
在C++中沒有對行或任何其他編程 語言的正式定義。A line是一種視覺概念,屬於閱讀和書寫排列在二維空間中的文字 。其中一行垂直位於或低於 。
計算機不會在二維空間中安排數據。他們安排在 線性,一維,存儲。沒有數據垂直高於或低於任何其他數據。
但是當然編程語言可以代表代表文本行,它們都是按照相同的約定來完成的。通常,行是以新行序列結尾的 字符的陣列。
一個新行序列本身就是一個或兩個字符數組,對操作系統的依賴公約 。 Windows使用2個字符的序列 carriage-return,line-feed
。類Unix操作系統使用1個字符的 序列line-feed
。您可以在 Wikipedia: Newline中研究該主題。但對於 的便攜性,在C++源代碼的行序列 - 不管它實際上是 - 由escape sequence \n
,你可以在源代碼,就好像它是一個字符用表示。
所以字符數組:
|h|e|l|l|o|\n|
表示文本行:
hello
用C++
。和字符數組:
|h|e|l|l|o|\n|n|e|w|\n|w|o|r|l|d|\n|
代表三行文字:
hello
new
world
如果您想要在陣列存儲在一個std::string
,C++可以讓你做到這一點 這樣的:
std::string s0{'h','e','l','l','o','\n','n','e','w','\n','w','o','r','l','d','\n'};
,或者更方便這樣的:
std::string s1{"hello\nnew\nworld\n"};
,甚至 - 如果你有一個有關使用\n
轉義序列恐懼 - 這樣的:
std::string s2
{R"(hello
new
world
)"};
所有存儲在字符串中的三行這些方法創建恰好在該 相同的字符數組串,即:
|h|e|l|l|o|\n|n|e|w|\n|w|o|r|l|d|\n|
它們都創建完全相同std::string
。
如果你打印任何這些字符串,你會看到相同的東西,例如 此程序:
#include <string>
#include <iostream>
int main() {
std::string s0{'h','e','l','l','o','\n','n','e','w','\n','w','o','r','l','d','\n'};
std::string s1{"hello\nnew\nworld\n"};
std::string s2 // Yes...
{R"(hello
new
world
)"}; // ...it is meant to be formatted like this
std::cout << "--------------" << std::endl;
std::cout << s0;
std::cout << "--------------" << std::endl;
std::cout << s1;
std::cout << "--------------" << std::endl;
std::cout << s2;
std::cout << "--------------" << std::endl;
return 0;
}
輸出:
--------------
hello
new
world
--------------
hello
new
world
--------------
hello
new
world
--------------
您可以將\ n字符添加到字符串以創建一個新行。
cout << "Hello \n New \n World" << endl;
這將輸出:
Hello
New
World
我希望我的**字符串變量**以這種格式存儲信息,因此就像我的字符串變量mv應該有一些字符串在fi第一行和第二行的一些字符串,這整個應該像一個字符串一樣工作 –
@MrinalVerma似乎你誤解了基本的C++概念,什麼是「字符串控制字符串」? –
如果我沒有理解你的問題是錯誤的。 這是你的答案,在每行的末尾添加一個轉義字符。
串MV = 「你好\ n \
新\ n \
世界\ n」;
\ n - >新行
\ - >轉義符
這裏是工作示例: Example
string mv = "hello\n\ new\n\ world\n";
除非我錯了,你可以使用換行符 '\ n' 字符串 – 2017-07-29 08:48:29
內我試圖串連 '\ n'但它打印的'\ n' –
顯示代碼與這個「不工作」連接 –