c语言的函数中sscanf函数对字符串的处理蛮有好处的,提高了效率
format格式:
{%[*] [width] [{h | l | I64 | L}]type | ' ' | '\t' | '\n' | 非%符号}
序号 | 符号 | 意义 |
1 | % | 格式化 |
2 | * | 跳过 |
3 | width | 读取宽度 |
4 | h | l | I64 | L | 通常h表示单字节size,I表示2字节 size,L表示4字节size(double例外),l64表示8字节size |
5 | type | 像%d,或者%s |
程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char str[128]={0};
//简单赋值
sscanf("usernaem=admin&pwd=Abc12345","%s",str);
printf("1 str:%s\n:",str);
//获取指定长度的字符串
sscanf("usernaem=admin&pwd=Abc12345","%4s",str);
printf("2 str:%s\n:",str);
//遇到指定为止的字符串
sscanf("username=admin&pwd=Abc12345","%[^=]",str);
printf("3 str:%s\n:",str);
//遇到指定为止的字符串
sscanf("username=admin&pwd=Abc12345","%*[a-z]%s",str);
printf("4 str:%s\n",str);
//跳过某些字段
sscanf("123456abcd","%*d%s",str);
printf("5 str:%s\n:",str);
//跳过某些字段
sscanf("username=admin&pwd=Abc12345","%[a-z=]",str);
printf("6 str::%s\n",str);
//遇到指定为止的字符串
sscanf("username=admin&pwd=Abc12345","%[^=]",str);
printf("7 str:%s\n",str);
return 0;
}
参考: