簡體   English   中英

C ++ 2d char數組轉換為字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM