c语言 sscanf()函数

介绍

sscanf()函数是C语言中重要的输入函数之一,它的作用是读取格式化的字符串数据。

和printf()与scanf()函数一样,sscanf()函数也是由标准C库提供的函数,头文件为

sscanf()函数的语法如下:

```c

int sscanf(const char *str, const char *format, ...);

```

其中,str是待读取的字符串;format是待读取的格式控制字符串,控制读取的数据类型和数据转换格式;而省略号代表可以接收任意个数的参数,即是待读取的数据,其数据类型和个数需与format字符串的格式控制符相对应。

sscanf()函数会从字符串str中读取数据,按格式格式化后存储到对应的变量中。sscanf()函数的返回值为成功读取的变量个数,如果读取失败则返回EOF。

使用方法

1、读取整型数据

下面是使用sscanf()函数读取整型数据的实例:

```c

int main()

{

int num;

char str[] = "123";

sscanf(str, "%d", &num);

printf("读取数字: %d\n", num);

return 0;

}

```

运行结果:读取数字: 123

其中,"%d"表示格式控制符,代表把读入的字符串转成整型数,并保存到num变量中。

2、读取浮点型数据

下面是使用sscanf()函数读取浮点型数据的实例:

```c

int main()

{

float fnum;

char str[] = "3.14159";

sscanf(str, "%f", &fnum);

printf("读取浮点数: %f\n", fnum);

return 0;

}

```

运行结果:读取浮点数: 3.141590

其中,"%f"表示格式控制符,代表把读入的字符串转成浮点型数,并保存到fnum变量中。

3、读取字符串数据

下面是使用sscanf()函数读取字符串的实例:

```c

int main()

{

char str[100];

char buf[] = "Hello world";

sscanf(buf, "%s", str));

printf("读取字符串: %s\n", str);

return 0;

}

```

运行结果:读取字符串: Hello

其中,"%s"表示格式控制符,代表把读入的字符串以空格或制表符作为分隔符,读取并保存到数组str中。在上面的实例中,sscanf()函数只读取了"Hello"这个单词,因为空格作为分隔符;如果需要读取整个字符串,可以在格式控制符中添加*(表示忽略此项),例如:

```c

sscanf(buf, "%[^\n]", str));

```

这个例子中,%[^n]表示读取到换行符(\n)为止的所有字符,并保存到str中。

4、读取多个不同类型数据

下面是一个包含多个数据类型的实例:

```c

int main()

{

int num1, num2;

float fnum;

char buf[] = "123 456 3.14";

sscanf(buf, "%d %d %f", &num1, &num2, &fnum);

printf("读取的整型数1: %d\n", num1);

printf("读取的整型数2: %d\n", num2);

printf("读取的浮点数: %f\n", fnum);

return 0;

}

```

运行结果:读取的整型数1: 123 读取的整型数2: 456 读取的浮点数: 3.140000

「%d %d %f」表示格式控制符,用空格作为分隔符,分别读取整型数num1、num2和浮点数fnum,并保存到相应的变量中。

案例说明

这是一个比较实用的sscanf()的使用案例。我们以“2021年3月20日 10点30分00秒”这段时间为例,来介绍如何使用sscanf()函数读取并保存时间信息。

```c

int main()

{

int year, month, day, hour, minute, second;

char time_str[] = "2021年03月20日 10点30分00秒";

sscanf(time_str, "%d年%d月%d日 %d点%d分%d秒", &year, &month, &day, &hour, &minute, &second);

printf("读取的时间是: %d年%d月%d日 %02d:%02d:%02d", year, month, day, hour, minute, second);

return 0;

}

```

运行结果:读取的时间是: 2021年3月20日 10:30:00

这个例子中,“%d年%d月%d日 %d点%d分%d秒”表示格式控制符,必须按照该格式读取并保存时间的各个部分,例如“年”和“月”之间有中文“月”;时间必须是“时分秒”,而不是“分秒时”等等。

总结

sscanf()函数是一个非常重要的输入函数,它可以很方便地从一个字符串中读取数据,按照程序需要的格式转换后保存到变量中。实际开发中,它可以应用于很多场合,如读取日志文件、读取配置文件等。在使用时,需要注意格式控制符的正确使用以及sscanf()函数的返回值。

壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(25) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部