我在想,如果有可能在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' –
显示代码与这个“不工作”连接 –