C stdio sscanf() 函数
定义和用法
sscanf()
函数从字符数组中读取数据,并将其写入由参数指定的内存位置。
sscanf()
函数定义在 <stdio.h>
头文件中。
format 参数是字符串,描述了预期从文件中读取的数据格式。如果数组的内容与格式不匹配,函数将在第一个不匹配点停止读取。
格式字符串可以包含格式说明符,这些说明符指定了数据的哪些部分应该写入参数。每个格式说明符对应函数的一个额外参数。
有关格式说明符的详细信息,请参阅 scanf()
参考页面。
实例
例子 1
从字符串中提取一个数字:
char number[] = "24 hours"; int num; sscanf(number, "%d", &num); printf("%d", num);
例子 2
从序列 "1 + 2 = 3" 中提取数字:
int a, b, c; char source[] = "1 + 2 = 3"; sscanf(source, "%i + %i = %i", &a, &b, &c); printf("a = %d \n", a); printf("b = %d \n", b); printf("c = %d \n", c);
例子 3
读取一个十六进制数并输出其十进制值:
int num; char hex[] = "FFAD01"; sscanf(hex, "%x", &num); printf("%d", num);
例子 4
在用户输入中搜索 "x"、"y" 或 "z":
char c; char source[] = "yes"; int found = sscanf(source, "%[xyz]", &c); if(found > 0) { printf("Found %c", c); } else { printf("Character not found"); }
语法
sscanf(char * source, const char * format, arg1, arg2...);
参数
参数 | 描述 |
---|---|
source | 必需。用作数据源的字符数组。 |
format | 必需。一个字符串,表示预期从数组中读取的数据格式。 |
arg1, arg2... | 可选。任意数量的额外参数,它们是指向内存的指针,值可以写入这些内存位置。 |
技术细节
返回: |
如果发生错误,则返回常量 |
---|