(c ++)数组到字符串的元素?

时间:2014-12-08 19:10:25

标签: c++ arrays string

有人可以帮助我将char array[]的某些元素转换为String。 我还在学习弦乐。

char input[40] = "save filename.txt";
int j;
string check;
for (int i = 0; input[i] != '\0'; i++)
{
   if (input[i] == ' ')
   {
      j = i+1;
      break;
   }
}
int index;
for (int m = 0; arr[j] != '\0'; m++)
{
    check[m] = arr[j];
    j++;
    index = m; //to store '\0' in string ??
}
check[index] = '\0';
cout << check; //now, String should output 'filename.txt" only 

2 个答案:

答案 0 :(得分:3)

字符串类有一个构造函数,它接受以NULL结尾的C字符串:

char arr[ ] = "filename.txt";

string str(arr);


//  You can also assign directly to a string.

str = "filename.txt";

答案 1 :(得分:1)

std::string的ctor有一些有用的重载用于从char数组构造字符串。在实践中使用时,重载大致相当于以下内容:

  • 将指针指向常量char,即以空值终止的C字符串。

    string(const char* s);
    

    char数组必须以空字符结尾,例如{'t', 'e', 's', 't', '\0'}。 C ++中的字符串文字总是自动以空值终止,例如"abc"会返回const char[4]元素{'a', 'b', 'c', '\0'}

  • 将指针指向常量char并指定要复制的字符数。

    string(const char* s, size_type count);
    

    与上述相同,但只会从count数组参数中复制char个字符。传递的char数组不一定必须以空值终止。

  • 选择2个迭代器。

    string(InputIt first, InputIt last);
    

    可用于构造一系列字符的字符串,例如

    const char[] c = "character array";
    std::string s{std::next(std::begin(c), 10), std::end(c)}; // s == "array".