C/C++ 分割字符并返回字符数组实例
//分割字符并返回字符数组 char **GetStrArray(char* s,const char* d) { char* s_s=new char[strlen(s)]; strcpy(s_s,s); //计算字符数组个数 int rows=0; char *p_str=strtok(s_s,d); while(p_str) { rows+=1; p_str=strtok(NULL,d); } //重新初始二维数据 char **strArray=new char*[rows+1]; for(int i=0;i<rows;i++) { strArray[i]=NULL; } strArray[0]=i2cp(rows); //数组总长度 // int index=1; s_s=new char[strlen(s)]; strcpy(s_s,s); p_str=strtok(s_s,d); while(p_str) { char* s_p=new char[strlen(p_str)]; strcpy(s_p,p_str); //添加到二维数组中 strArray[index]=s_p; // index+=1; p_str=strtok(NULL,d); } return strArray; }用法1:
char* f_ext="cun_xzdw.wl";
char **strArray=GetStrArray(f_ext,".");
int tlen=atoi(strArray[0]);
ShowMsg(strArray[1]); //表示获取到的cun_xzdw字符串
用法2:
//获取不带扩展名的文件名 char* getfilenameNoExt_lc(char* s,const char* d) { //获取带扩展名的文件名 char** strArray; char* t_f_ext=NULL; strArray=GetStrArray(s,"\\"); int t_len=atoi(strArray[0]); t_f_ext=strArray[t_len]; //获取不带扩展名的文件名 char* t_fname=NULL; strArray=GetStrArray(t_f_ext,"."); int arraylen=atoi(strArray[0]); if(arraylen>=2) { t_fname=strArray[1]; } return t_fname; }char* Lfilename="d:\\cun_xzdw.wl";
char* t_fname=getfilenameNoExt_lc(Lfilename,"\\");
//t_fname="cun_xzdw";
---the--end--
---vp:hsg
---create date:2012-04-19--