C++ 字符串分割
- 提问者网友:十年饮冰
- 2021-02-11 19:33
假如不存在 &2dee5& 返回一个NULL 可以实现吗? 求代码。。。。
- 五星知识达人网友:走死在岁月里
- 2021-02-11 19:44
- 1楼网友:夜风逐马
- 2021-02-11 20:56
代码:
#ifdef unicode #define tchar unsigned short #else #define tchar char #endif
#include <iostream> using namespace std;
void main() { tchar* data = "101,120,165,38,92,47,693,32"; cout<<"data: "<<data<<endl;
int len = strlen(data); int num = 0;
//获取串中整数个数 int i; for(i=0; i<len; i++) { if(',' == data[i])//逗号个数+1即为整数个数 { num++; } } num += 1;
int* ret = new int[num];//动态分配num个空间用于存储各整数 int order = 0;//用于保存动态数组当前需要存储的下标
//解析各整数 char tmp[16] = {0};//临时字符串用于存储每一个整数的各位 int j = 0; for(i=0; i<len; i++) { if(',' != data[i]) { tmp[j++] = data[i];//将一个整数的各位存入临时字符串 } else { ret[order++] = atoi(tmp);//遇到逗号表示该整数完成,将其转换后存到动态分配的数组中 memset(tmp, 0, 16);//清空临时字符串 j = 0; } if(i+1 == len)//到达原字符串尾部直接将临时字符串转换成整数并存储 { ret[order++] = atoi(tmp); } }
//输出各整数 for(i=0; i<num; i++) { cout<<ret[i]<<endl; }
//释放资源 delete[] ret; }
- 2楼网友:迟山
- 2021-02-11 19:52