在 Linux 中,sscanf
函數用于從字符串中提取特定格式的數據
以下是一個使用 sscanf
提取特定字段的示例:
#include<stdio.h>
#include<string.h>
int main() {
char input[] = "Name: John, Age: 30, City: New York";
char name[20], city[20];
int age;
// 提取 Name 和 City 字段
int result = sscanf(input, "Name: %19[^,], Age: %d, City: %19s", name, &age, city);
if (result == 3) {
printf("Name: %s\n", name);
printf("Age: %d\n", age);
printf("City: %s\n", city);
} else {
printf("Error: Unable to extract fields.\n");
}
return 0;
}
在這個示例中,我們使用 sscanf
函數從輸入字符串中提取 Name
、Age
和 City
字段。注意,我們使用 %19[^,]
格式說明符來提取 Name
字段,因為它可能包含空格。同時,我們使用 %19s
格式說明符來提取 City
字段,以防止緩沖區溢出。
運行此程序將輸出以下結果:
Name: John
Age: 30
City: New York
請注意,sscanf
函數返回成功讀取的字段數量。如果返回值不等于預期的字段數量,則表示提取過程中出現錯誤。在這種情況下,我們可以根據需要處理錯誤。