C语言有没有把字符串拆分为数组的函数?
张三$|男$|济南$|大专学历$|如上是一个字符串,把上面的字符串按$|分成一个数组。如:myArray[0]="张三";myArray[1]="男";myArray[2...
张三$|男$|济南$|大专学历$|
如上是一个字符串, 把上面的字符串按 $| 分成一个数组。如:
myArray[0] = "张三";
myArray[1] = "男";
myArray[2] = "济南";
myArray[3] = "大专学历";
C语言有没有提供相关函数啊? 如果没有能帮我写一个吗,谢谢。
要求能支持中文的。 展开
如上是一个字符串, 把上面的字符串按 $| 分成一个数组。如:
myArray[0] = "张三";
myArray[1] = "男";
myArray[2] = "济南";
myArray[3] = "大专学历";
C语言有没有提供相关函数啊? 如果没有能帮我写一个吗,谢谢。
要求能支持中文的。 展开
4个回答
展开全部
直接用简单的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;
}
}
/*
张三
男
济南
大轮脊专悉芦学历睁桐带
*/
展开全部
用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;
}
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;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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"
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"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能说得再详细一点吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询