在c++中将字符数组解包为字符串
Unpack char array to strings in c++
必须有一种更优雅的方式将字符数组解包为字符串数组:
void loadNames(int size, char *inp[])
{
size_t i;
for (i = 0; i < size; i++){
string s = ""
while ( char(*inp[i]) != ' ' ) s.push_back(*inp[i]++);
cout << "String " << i << " = " << s.c_str() << endl;
}
}
任何线索-高度赞赏!
有一种简单的方法可以构建所有这些std::string
并将它们放入std::vector
(没有多余的副本):
std::vector<std::string> v(inp, inp+size);
这是vector的范围初始化式,与string的c-string初始化式结合使用。
使用std::vector<std::string>
并使用其范围构造函数来填充它。然后遍历并打印每个字符串:
void loadNames(int size, char* inp[])
{
std::vector<std::string> v(inp, inp + size);
size = 0;
for (auto&& x : v) {
std::cout << "String " << ++size << x << std::endl;
}
}
直接从char*
构造
string s(inp[i]);
cout << "String " << i << " = " << s.c_str() << endl;
相关文章:
- 将C#字符串数组传递给C++
- 如何为 C 型字符串数组编写 getter 和 setter?
- 有没有办法使用 strcpy 将字符串数组复制到另一个字符串或其他数组中?
- 尝试将 c 字符串数组与分隔符连接起来
- 将字符串数组传递给接受常量字符**的函数
- 返回 C++ 中的字符串数组
- 如何从COM模块中的函数返回字符串数组?
- 无法将字符串数组声明为类成员而不是字符 (C++)
- 删除字符串数组
- 如何将字符串数组返回到 java JNI
- 将字符串数组作为函数参数传递
- C++将字符串数组的元素存储到变量中
- 循环访问还包含未使用元素的字符串数组
- 字符串数组上的 sizeof 运算符以 C++ 为单位给出不同的输出
- 乘以字符串/数组和全局数组
- 递归二进制搜索与字符串数组
- 如何初始化一个标准::字符串数组?
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- C++字符串数组的动态向量
- 给定一个等长字符串数组