一:atoi/ atol /atof 字符串转数值
二:strtok 字符串切割
void test09() { char data[]="hehe:heiehi#xixi:haha!lala:henhen?wuwu"; char *buf[16]={NULL}; int i=0; buf[i] = strtok(data,":#!?"); //判断上一次切割是否成功 如果成功才进行下一次切割 while(buf[i] != NULL) { i++; buf[i] = strtok(NULL, ":#!?"); } //遍历 i =0; while(buf[i] != NULL) { printf("%s\n", buf[i]); i++; } }
运行结果;
案例:
void test09() { char data[]="hehe:heiehi#xixi:haha!lala:henhen?wuwu"; char *buf[16]={data,NULL}; //判断上一次切割是否成功 如果成功才进行下一次切割 int i=0; while(1) { buf[i] = strtok(buf[i], ":#!?"); if(buf[i] == NULL) break; i++; } //遍历 i =0; while(buf[i] != NULL) { printf("%s\n", buf[i]); i++; } }
三:sprintf 组包
void test01() { int year = 2019; int mon = 8; int day = 1; //需求:将2019 8 1组成 2019年8月1日 char buf[64]=""; int len = sprintf(buf,"%d年%d月%d日",year,mon,day); printf("len = %d\n", len); printf("%s\n", buf); //需求:小明:18:男:北京海淀区 char name[]="小明"; int age = 18; char sex[]="男"; char addr[] ="北京海淀区"; char buf2[128]=""; len = sprintf(buf2,"%s:%d:%s:%s",name,age,sex,addr); printf("len = %d\n", len); printf("%s\n", buf2); //上线:版本号:块编号:主机名:用户名:功能:附加消息 //使用sprintf将数值 转成 字符串 char buf3[16]=""; sprintf(buf3,"%d",128); printf("buf3=%s\n", buf3); }