C++CString以,分隔的字符串转换成int数组
时间: 2023-07-01 10:20:59 浏览: 295
可以使用 `CString` 类的 `Tokenize` 函数将以逗号分隔的字符串分割成单个子字符串,然后再使用 `CString` 类的 `ToInt` 函数将子字符串转换为整数并存储到 `std::vector<int>` 中。最后将 `std::vector<int>` 转换为数组即可。下面是一个示例代码:
```c++
#include <iostream>
#include <vector>
#include <atlstr.h> // 包含 CString 类的头文件
int main() {
CString str = "1,2,3,4,5";
CString delimiter = ",";
std::vector<int> nums;
// 分割字符串并转换为整数
int start = 0;
int end = str.Find(delimiter);
while (end != -1) {
CString subStr = str.Mid(start, end - start);
int num = _ttoi(subStr);
nums.push_back(num);
start = end + delimiter.GetLength();
end = str.Find(delimiter, start);
}
// 处理最后一个子字符串
CString subStr = str.Mid(start);
int num = _ttoi(subStr);
nums.push_back(num);
// 将 vector 转换为数组
int size = nums.size();
int* arr = new int[size];
for (int i = 0; i < size; i++) {
arr[i] = nums[i];
}
// 输出数组内容
for (int i = 0; i < size; i++) {
std::cout << arr[i] << " ";
}
std::cout << std::endl;
// 释放动态分配的数组内存
delete[] arr;
return 0;
}
```
上面的代码将以逗号分隔的字符串 `"1,2,3,4,5"` 转换为整数数组并输出,输出结果为 `1 2 3 4 5`。
阅读全文