C语言有没有把字符串拆分为数组的函数?

张三$|男$|济南$|大专学历$|如上是一个字符串,把上面的字符串按$|分成一个数组。如:myArray[0]="张三";myArray[1]="男";myArray[2... 张三$|男$|济南$|大专学历$|

如上是一个字符串, 把上面的字符串按 $| 分成一个数组。如:

myArray[0] = "张三";
myArray[1] = "男";
myArray[2] = "济南";
myArray[3] = "大专学历";

C语言有没有提供相关函数啊? 如果没有能帮我写一个吗,谢谢。
要求能支持中文的。
展开
 我来答
古城_童话
2018-10-27 · TA获得超过264个赞
知道小有建树答主
回答量:327
采纳率:0%
帮助的人:212万
展开全部

直接用简单的C++

#include <iostream>
#include <string>
#include <vector>
using namespace std;

//把字符串s按照字符串c进行切分得到vector_v 
vector<string> split(const string& s, const string& c){
vector<string> v;
int pos1=0,pos2;
while((pos2=s.find(c,pos1))!=-1){
v.push_back(s.substr(pos1, pos2-pos1));
     pos1 = pos2 + c.size();
   }
if(pos1 != s.length())
     v.push_back(s.substr(pos1));
return v;
}


int main()
{
string input="张三$|男$|济南$|大专学历$|";
vector<string>  myArray=split(input,"$|");
for(int i=0;i<myArray.size();i++){
cout<<myArray[i]<<endl;
}
}
/*
张三

济南
大轮脊专悉芦学历睁桐带
*/
oolgloo
推荐于2018-05-13 · TA获得超过2636个赞
知道小有建树答主
回答量:604
采纳率:0%
帮助的人:661万
展开全部
用strtok函数实山搭现吧。
void split( char **arr, char *str, const char *del)//字符分割函数的简单定义和实现
{
char *s =NULL;

s=strtok(str,del);
while(s != NULL)
{
*arr++ = s;
s = strtok(NULL,del);
}
}

int main()
{
int i;
char *myArray[4];
char s[] = "张三$|男$|济南逗铅拿$|大激胡专学历$|";

memset(myArray, 0x0, sizeof(myArray));
split(myArray, s, "$|");

for (i=0; i<4; i++)
{
printf("%s\n", myArray[i]);
}
return 0;
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
韧劲9
推荐于2017-09-20 · TA获得超过9224个赞
知道小有建树答主
回答量:1638
采纳率:92%
帮助的人:352万
展开全部
char str[] = "now $| is the time for all $| good men to come to the $| aid of their country";
char delims[] = "$|";
char *result = NULL;

result = strtok( str, delims );

while( result != NULL )
{
printf( "result is \"%s\"\n"慧兄迹, result );
result = strtok( NULL, delims );
}
以上代码的前并运行结果是:

result is "now "
result is " is the time for all "
result is " good men to come to the "尘扰
result is " aid of their country"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tos231
2011-05-08 · 超过28用户采纳过TA的回答
知道答主
回答量:67
采纳率:100%
帮助的人:61.2万
展开全部
能说得再详细一点吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式