c++用“,”分割字符串,再将分割后的字符串存入不同的数组中。
时间: 2024-10-27 16:02:56 浏览: 14
在C++中,你可以使用`std::string`的`find_first_of()`函数结合循环结构来实现这个功能。首先,你需要创建两个数组,一个存储原字符串,另一个用于存储分割后的子串。下面是一个简单的步骤说明:
1. 定义两个字符数组(假设是`char *strArray[]`)和整型数组(如`int substrCount[]`),用于存储字符串和分割计数。
2. 使用`std::string`的构造函数读取输入的字符串。
3. 创建一个临时字符串变量`tempStr`,开始从原字符串的开头查找逗号(`', '`)。
4. 当找到逗号时,使用`substr()`函数提取从上一次找到逗号到当前位置的子串,并将其复制到第一个数组元素中。然后更新`tempStr`为剩余的字符串。
5. 如果最后一个字符不是逗号,那么把剩余的字符串(包括最后一个字符)也添加到第一个数组中。
6. 更新分割计数`substrCount[i]`并继续查找下一个逗号,直到遍历完整个字符串。
7. 最后,检查是否有未使用的数组元素,如果有的话,它们可能是最后一个子串,需要单独处理。
以下是伪代码示例:
```cpp
std::string input;
// 从用户输入或其他源获取字符串
int nElements = 0; // 记录子串的数量
strArray[nElements++] = input.substr(0, input.find(","));
while (input.find(',') != std::string::npos) {
int start = input.find(",");
strArray[nElements++] = input.substr(start + 1);
input = input.substr(start + 2); // 跳过已处理的部分
}
if (input.length() > 0) { // 检查是否还有剩余部分
strArray[nElements++] = input; // 存储最后一段
}
// 现在strArray[]包含了分割后的子串,substrCount[]记录了对应子串的数量
```
阅读全文