我有这样一个字符串:"bizbox_username=admin; bizstore_note=; bizbox_userlang=zh; csd=33; cod=29.30; business_note=null",我想通过C语言的分割,得到bizbox_userlang的值,比如这里的zh,然后我会根据这个值来做不同的操作。我自己写了一段,写不下去了,初学,望高手帮忙!!!感谢!!!
这是我写的一段:
#include <stdio.h>
#include <string.h>
void main()
{
char buf1[]="bizbox_username=admin; bizbox_userpass=c1501f6698e058e47d3f81f723c2b9f2; bizstore_note=; bizbox_userlang=zh; csd=33; cod=29.30; business_note=null";
char* token = strtok( buf1, " ");
while( token != NULL )
{
printf( "%s\n", token );
token = strtok( NULL, " ");
}
}
这样可以得到按空格分割的字符串,比如bizbox_username=admin;,下面该怎么继续啊!
一楼的意思是再用一次strtok函数来用=分割吧,这样感觉比较麻烦,还有别的思路吗?
使用strtok函数即可实现分割字符串。
1、strtok函数:
原型:char *strtok(char s[], const char *delim);
功能:将一个字符串分解为一组字符串,s为要分解的字符串,delim为分隔符字符串;
说明:当strtok函数在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针;
头文件:string.h;
返回值:从字符串s开头开始的一个个被分割的字符串。分割结束时,返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
2、例程: