如何将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;
}
Run Code Online (Sandbox Code Playgroud)
你也可以只将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;
}
Run Code Online (Sandbox Code Playgroud)
您可以使用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
Run Code Online (Sandbox Code Playgroud)
这里&foo[0][0]是指向第一个元素&foo[2][2] + 1的指针,是指向最后一个元素的指针.指针是迭代器.
| 归档时间: |
|
| 查看次数: |
13451 次 |
| 最近记录: |