有人可以帮助我将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
答案 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".