C语言字符串拆分的两种方式strtok和正则表达式

C语言字符串拆分的两种方式strtok和正则表达式

一、利用strtok()函数进行分割函数头文件#include函数原型:char *strtok(char s[], const char *delim); s[]是原字符串,delim为分隔符函数返回被分解的第一个子字符串,若无可检索的字符串,则返回空指针特性:1)strtok拆分字符串是直接在原串上操作,所以要求参1必须可读可写2)第一次拆分,参1传待拆分的原串。第1+次拆分时,参1传NULL

#include

#include

int main()

{

char str[] = "abc.def.12";

char *index = NULL;

char id[128] = {0};

index = strtok(str, ".");

while (index != NULL)

{

strncpy(id, index, sizeof(id));

index = strtok(NULL, ".");

}

printf("%s\n", id);

}

编译输出:

test# gcc 1.c -o out

test# ./out

12

二、利用正则表达式实现函数原型:int sscanf (char *str, char * format [, argument, …]);与scanf()区别,scanf的输入是在键盘输入的,而sscanf()是在用户定义的缓冲区获取的固定格式的数据。返回值:读取成功的参数个数,失败是-1

#include

int main()

{

char str[] = "123@qq.com";

int b;

char c[10];

char d[10];

int n=sscanf(str, "%d@%[a-z].%[a-z]", &b, c, d);

printf("用户名%d\n", b);

printf("邮箱类型%s\n", c);

printf("第三部分%s\n", d);

printf("返回值%d\n", n); //读取成功的参数个数

}

编译输出:

test# gcc 2.c -o out

test# ./out

用户名123

邮箱类型qq

第三部分com

返回值3

转自:https://blog.csdn.net/qq_45313714/article/details/116044440

参考:字符分割函数strtok

相关推荐

什么视频格式文件最小
365平台怎么注册

什么视频格式文件最小

📅 09-26 👁️ 6204
先打主宰还是先打暴君?玩家都会选错,选错了顺风变逆风!
macOS Big Sur 的亮点总结和更新建议
365平台怎么注册

macOS Big Sur 的亮点总结和更新建议

📅 07-21 👁️ 1071
松下电热水器怎么样?品牌特点、性能评价和用户口碑详细解析
scum地图资源点2023最新 scum地图资源点高清图大全[多图]
最新整理的10款社群运营必备工具,隆重推荐给你~
365平台怎么注册

最新整理的10款社群运营必备工具,隆重推荐给你~

📅 08-04 👁️ 8085
新域名生效需要多久_新注册的域名几天后才能生效
lol五星大厨塔姆有特效吗(英雄联盟五星大厨)
365平台怎么注册

lol五星大厨塔姆有特效吗(英雄联盟五星大厨)

📅 08-01 👁️ 4209
别怕,香蕉本来就是人工催熟的
365平台怎么注册

别怕,香蕉本来就是人工催熟的

📅 08-30 👁️ 9201