[英]C++ 2d char array to string
如何将2d char数组转换为字符串?
int main()
{
char foo[3][3] = {{'a','b','c'}, {'d','e','f'},{'g','h','i'}};
string bar;
bar = foo;
cout<< bar; //abcdefghi
return 0;
}
您还可以仅将2d数组的选定部分转换为字符串吗?
int main()
{
char foo[3][3] = {{'a','b','c'}, {'d','e','f'},{'g','h','i'}};
string bar;
bar = foo[0][1] + foo[1][2] + foo[2][0];
cout<< bar; //bfg (bar contains only b, f, and g)
return 0;
}
您可以使用2D数组中的元素是连续的,以及std::string
的两次迭代构造函数的事实:
char foo[3][3] = {{'a','b','c'}, {'d','e','f'},{'g','h','i'}};
std::string bar(&foo[0][0], &foo[2][2]+1);
std::cout << bar << std::endl; // abcdefgi
这里, &foo[0][0]
是指向第一个元素的指针, &foo[2][2] + 1
是指向最后一个元素的指针。 指针是迭代器。
希望这段代码对您有所帮助,欢迎使用C ++
#include <iostream>
using namespace std;
int main()
{
char foo[3][3] = {{'a','b','c'}, {'d','e','f'},{'g','h','i'}};
string bar;
bar = "";
for(int i =0 ; i< 3;i++)
{
for(int j =0 ;j<3;j++)
{
bar += foo[i][j];
}
}
cout<< bar; //abcdefghi
return 0;
}
C ++标准对此不包含函数,因此您必须编写自己的函数。
您可以使用以下代码:
int main(int argc, char const *argv[])
{
char foo[3][3] = {{'a','b','c'}, {'d','e','f'},{'g','h','i'}};
string bar;
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
bar.append(foo[i][j]);
}
}
cout << bar;
return 0;
}
此代码遍历2d数组(该数组实际上是一个或多个数组),并将每个字符添加到字符串中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.