sscanf分割字符串

admin 38 0

sscanf分割字符串

在C语言中,`sscanf`函数是一个非常有用的函数,用于从字符串中读取格式化的输入,虽然它的名字是“scanf”的变种,但它允许你从字符串而不是标准输入中读取数据,除此之外,`sscanf`还可以用来分割字符串。

假设我们有一个字符串,它包含多个由逗号分隔的值,我们想要将这些值分别存储到不同的变量中,`sscanf`就派上了用场。

下面是一个简单的示例,演示如何使用`sscanf`来分割字符串:

```c

#include

int main() {

char str[] = "apple,banana,orange,grape";

char fruit1[50], fruit2[50], fruit3[50], fruit4[50];

int result = sscanf(str, "%[^,],%[^,],%[^,],%s", fruit1, fruit2, fruit3, fruit4);

if (result == 4) {

printf("fruit1: %s\n", fruit1);

printf("fruit2: %s\n", fruit2);

printf("fruit3: %s\n", fruit3);

printf("fruit4: %s\n", fruit4);

} else {

printf("Failed to parse the string.\n");

}

return 0;

}

在这个示例中,我们定义了一个包含四个由逗号分隔的水果名称的字符串。我们使用`sscanf`函数来分割这个字符串,并将结果存储到四个不同的字符数组中。`%[^,]`是一个格式说明符,它表示读取一个字符串,直到遇到逗号为止。

`sscanf`函数的返回值是成功匹配的项数。在这个例子中,如果返回值是4,说明成功地分割了四个水果名称。否则,说明字符串的格式不正确或出现了其他问题。

运行这个程序,输出将会是:


```makefile
fruit1: apple
fruit2: banana
fruit3: orange
fruit4: grape

这表明`sscanf`成功地将字符串分割成了四个部分,并将它们分别存储到了四个不同的变量中。