C++二维字符数组转换为字符串

bis0qfac  于 2023-05-02  发布在  其他
关注(0)|答案(4)|浏览(149)

如何将一个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;
}
qgzx9mmu

qgzx9mmu1#

你可以利用2D数组中的元素是连续的这一事实,以及the two-iterator constructor of 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是指向最后一个元素之后的一个元素的指针。指针是迭代器。

krugob8w

krugob8w2#

希望这段代码能对你有所帮助,欢迎来到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;
}
lnlaulya

lnlaulya3#

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;
}

这段代码遍历二维数组,实际上是一个或多个数组,并将每个字符添加到字符串中。

vq8itlhq

vq8itlhq4#

int main(){

 Char ar[4][10]=. 
  {"one","two","three","four"};

      for(int i=0;i<4;i++)
      {
           Cout<<ar[i]<<endl;

      }

return 0;
}

相关问题