溫馨提示×

linux sscanf 怎樣提取特定字段

小樊
92
2024-08-26 22:41:03

在 Linux 中,sscanf 函數(shù)用于從字符串中提取特定格式的數(shù)據(jù)

以下是一個使用 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 函數(shù)從輸入字符串中提取 Name、AgeCity 字段。注意,我們使用 %19[^,] 格式說明符來提取 Name 字段,因?yàn)樗赡馨崭瘛M瑫r,我們使用 %19s 格式說明符來提取 City 字段,以防止緩沖區(qū)溢出。

運(yùn)行此程序?qū)⑤敵鲆韵陆Y(jié)果:

Name: John
Age: 30
City: New York

請注意,sscanf 函數(shù)返回成功讀取的字段數(shù)量。如果返回值不等于預(yù)期的字段數(shù)量,則表示提取過程中出現(xiàn)錯誤。在這種情況下,我們可以根據(jù)需要處理錯誤。

0