使用 sscanf 保存由空格分开的数据
时间: 2023-08-11 10:38:39 浏览: 41
可以使用 sscanf 函数,它可以从一个字符串中读取格式化的数据并保存到多个变量中。如果要保存由空格分开的数据,可以使用 %s 格式说明符,它可以匹配字符串中的一个或多个字符,直到遇到下一个空格字符。下面是一个示例:
```c
char str[] = "1.23 4.56 7.89";
float a, b, c;
sscanf(str, "%f %f %f", &a, &b, &c);
```
这个例子中,sscanf 函数将会把字符串 str 中的三个浮点数分别保存到变量 a、b 和 c 中。注意,在使用 sscanf 函数时,要确保变量的类型和格式说明符相匹配,否则会导致数据读取错误。
相关问题
如何使用sscanf
使用sscanf函数可以从一个字符串中按照指定的格式提取数据。下面是一个使用sscanf的示例:
```c
#include <stdio.h>
int main() {
char str[] = "John 25";
char name[20];
int age;
sscanf(str, "%s %d", name, &age);
printf("Name: %s\n", name); // 输出:Name: John
printf("Age: %d\n", age); // 输出:Age: 25
return 0;
}
```
在上面的示例中,我们定义了一个字符串`str`,其中包含了一个名字和一个年龄。我们使用sscanf函数从字符串中提取出名字和年龄,并将它们存储在相应的变量`name`和`age`中。最后,我们打印出提取出的名字和年龄。
需要注意的是,sscanf函数的第一个参数是要解析的字符串,第二个参数是格式字符串,后面的参数是要存储解析结果的变量的地址。
sscanf 数据格式
sscanf函数是C语言中的一个输入函数,用于从字符串中读取数据并根据指定的格式进行解析。它的函数原型如下:
```c
int sscanf(const char *str, const char *format, ...);
```
其中,str是要解析的字符串,format是格式控制字符串,后面的参数是用于接收解析结果的变量。sscanf根据format字符串的格式指示符将str中的数据解析并存储到对应的变量中。
例如,假设有一个字符串str = "Hello World! 2022",我们可以使用sscanf来解析其中的整数和字符串:
```c
char str[20] = "Hello World! 2022";
char string[10];
int year;
sscanf(str, "%s %d", string, &year);
printf("String: %s\n", string);
printf("Year: %d\n", year);
```
上述代码中,"%s"表示读取一个字符串,"%d"表示读取一个整数。运行结果将输出:
```
String: Hello
Year: 2022
```