linux sscanf如何解析字符串

小樊
82
2024-08-26 22:38:10

在Linux中,sscanf函數(shù)是一個(gè)用于從字符串中讀取格式化輸入的函數(shù)

以下是一個(gè)使用sscanf解析字符串的簡(jiǎn)單示例:

#include<stdio.h>

int main() {
    char input[] = "Hello, my name is John! I am 30 years old.";
    char name[20];
    int age;

    // 使用sscanf從字符串中提取名字和年齡
    int result = sscanf(input, "Hello, my name is %19s! I am %d years old.", name, &age);

    if (result == 2) {
        printf("Name: %s\n", name);
        printf("Age: %d\n", age);
    } else {
        printf("Failed to parse the input string.\n");
    }

    return 0;
}

在這個(gè)示例中,我們使用sscanf函數(shù)從字符串input中提取名字和年齡。%19s表示讀取一個(gè)最大長(zhǎng)度為19的字符串(加上空字符),%d表示讀取一個(gè)整數(shù)。我們需要傳遞一個(gè)指向整數(shù)變量的指針(&age),以便將讀取的值存儲(chǔ)在該變量中。

運(yùn)行此程序?qū)⑤敵觯?/p>

Name: John
Age: 30

請(qǐng)注意,sscanf函數(shù)的返回值表示成功讀取的參數(shù)數(shù)量。在這種情況下,如果返回值為2,則表示我們已成功讀取名字和年齡。

0