2017-07-29 36 views
1

我在想,如果有可能在C++中包含數據的字符串中包含數據,我不想做一串或一串字符串 假設我有一個字符串MV
MV =
「你好

世界」
你好,新的世界是不同的線路。現在,如果我們打印的MV那麼hello,新的世界應該來在不同的行。如何把一個新的行在一個字符串中的c + +

我也想在關於競爭力的節目,如果串聯查詢的所有答案在一個單一的字符串,然後輸出回答或COUT通過一個所有查詢一個,將有兩個輸出

一個時間差
+0

除非我錯了,你可以使用換行符 '\ n' 字符串 – 2017-07-29 08:48:29

+0

內我試圖串連 '\ n'但它打印的'\ n' –

+1

顯示代碼與這個「不工作」連接 –

回答

0

我想我的字符串變量來保存該信息格式因此 像我的字符串變量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 
-------------- 

Live demo

0

您可以將\ n字符添加到字符串以創建一個新行。

cout << "Hello \n New \n World" << endl; 

這將輸出:

Hello 
New 
World 
+0

我希望我的**字符串變量**以這種格式存儲信息,因此就像我的字符串變量mv應該有一些字符串在fi第一行和第二行的一些字符串,這整個應該像一個字符串一樣工作 –

+0

@MrinalVerma似乎你誤解了基本的C++概念,什麼是「字符串控制字符串」? –

1

如果我沒有理解你的問題是錯誤的。 這是你的答案,在每行的末尾添加一個轉義字符。

串MV = 「你好\ n \
新\ n \
世界\ n」;

\ n - >新行
\ - >轉義符

這裏是工作示例: Example

string mv = "hello\n\ new\n\ world\n";

相關問題