如何将一长串字符串以空格为标记分割成多个字符串
发布网友
发布时间:2022-04-20 17:48
我来回答
共4个回答
热心网友
时间:2023-05-13 21:03
source: 需要分割的源字符串;
dest: 存储分割后的各个字符串变量的目标变量;
division:分割字符
void decodeCString(CString source, CStringArray& nbsp; dest, char division)
{
dest.RemoveAll();
for(int i=0;i〈 source.GetLength();i )
{
if(source.GetAt(i)== division)
{
dest.Add(source.Left(i)); //去掉右边
for(int j=0;j 〈 (dest.GetSize()-1);j )
{
dest[dest.GetSize()-1] = dest[dest.GetSize()-1].Right(dest[dest.GetSize()-1].GetLength()-dest[j].GetLength()-1); //去掉左边
}
}
}
热心网友
时间:2023-05-13 21:03
strtok(分割字符串)
相关函数
index,memchr,rindex,strpbrk,strsep,strspn,strstr
表头文件
#include<string.h>
定义函数
char * strtok(char *s,const char *delim);
函数说明
strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串,当strtok()在参数s的字符串中发现到参数delim的分割字符时则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回下一个分割后的字符串指针。
返回值
返回下一个分割后的字符串指针,如果已无从分割则返回NULL。
范例
#include<string.h>
main()
{
char s[]="ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z";
char *delim="-: ";
char *p;
printf("%s ";strtok(s,delim));
while((p=strtok(NULL,delim)))printf("%s ",p);
printf("\n");
}
执行
ab cd ef;gh i jkl;mnop;qrs tu vwx y;z /*-与:字符已经被\0 字符取代*/
参考资料:http://man.chinaunix.net/develop/c&c++/linux_c/default.htm
热心网友
时间:2023-05-13 21:03
你要的分割后的字符串是显示出来,还是保存在数组里?或是直接在原串中加空格显示?
热心网友
时间:2023-05-13 21:04
可以用vbs
dim a()
a=split("长字符 串"," ")
msgbox a