本篇 ShengYu 介紹 C/C++ sscanf 用法與範例,在 C/C++ 語言中,sscanf
函式是一個非常有用的工具,用於從字串中提取資料(從字串中讀取格式化的輸入)。本文將介紹 sscanf
函式的基本用法,並提供一些常見的使用情況和範例程式碼,scanf 詳細用法範例請繼續往下閱讀。
C/C++ 要讓指定的格式從字串中提取資料,並將提取的資料儲存到指定的變數可以使用 sscanf,使用 sscanf 的話需要引入的標頭檔 <stdio.h>
,如果要使用 C++ 的標頭檔則是引入 <cstdio>
,
sscanf 函式原型為1
int sscanf(const char *str, const char *format, ...);
其中,str
是包含要解析的字串,format
是格式字串,用於指定解析的方式,而 ...
則是輸出的變數。sscanf
函式會根據 format
字串中的格式來解析 str
字串,並將解析結果儲存到 ...
中指定的變數中。
C/C++ sscanf 基本用法範例
下面是一個簡單的範例,示範了如何使用 sscanf
函式:
1 |
|
在這個範例中,我們首先定義了一個字串 str
包含了一個名字和一個年齡,然後我們定義了兩個變數 name
和 age
,用於儲存從字串中提取的名字和年齡,之後我們使用 sscanf
函式按照格式 "%s %d"
從字串 str
中提取名字和年齡,並將它們分別儲存到 name
和 age
變數中。最後我們列印出提取出的名字和年齡。
除了基本的用法外,C/C++ sscanf
函式還可以處理更覆雜的情況,下面是一些常見的用法及範例程式碼:
C/C++ sscanf 提取多個資料項
1 |
|
這個範例中,字串 str
包含了一個浮點數、一個整數和一個單詞。我們定義了三個變數 pi
、num
和 word
,用於儲存從字串中提取的資料。使用 sscanf
函式按照格式 "%lf %d %s"
從字串 str
中提取這三個資料,並將它們分別儲存到對應的變數中。最後我們印出提取出的浮點數、整數和單詞。
C/C++ sscanf 使用格式修飾符
忽略特定的字元,例如:忽略-
字元,範例如下,
1 |
|
這個範例中,字串 str
包含了一個日期,格式為 “年-月-日”。我們定義了三個變數 year
、month
和 day
,用於儲存從字串中提取的年、月和日。使用 sscanf
函式按照格式 "%d-%d-%d"
從字串 str
中提取年、月和日,忽略中間的-
連接字元,並將它們分別儲存到對應的變數中。最終我們列印出提取出的年、月和日。
C/C++ sscanf 處理不定長資料
1 |
|
這個範例中,字串 str
包含了多個整數,以空格分隔。我們定義了一個整型陣列 numbers
,用於儲存從字串中提取的整數。使用 sscanf
函式按照格式 "%d %d %d %d %d"
從字串 str
中提取整數,並將它們儲存到陣列 numbers
中。sscanf
函式回傳成功解析的資料項的數量,我們可以據此確定實際提取了多少個整數。最終,我們列印出提取出的整數以及實際提取的數量。
總結
sscanf
函式是 C 語言中用於從字串中提取資料的強大工具。透過指定合適的格式字串,我們可以靈活地從字串中提取各種類型的資料,並將其儲存到指定的變數中。本文介紹了 sscanf
函式的基本用法以及一些常見的使用情況和範例程式碼,你可以看到 sscanf
函式的靈活性和多功能性。無論是從簡單的整數和浮點數,到複雜的字串和特定格式的輸入,它都能應對自如。
以上就是 C/C++ sscanf 的用法與範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!
其它相關文章推薦
如果你想學習 C++ 相關技術,可以參考看看下面的文章,
C/C++ 新手入門教學懶人包
C/C++ strcpy 用法與範例
C/C++ strcmp 用法與範例
C/C++ strcat 用法與範例
C/C++ strstr 用法與範例
C/C++ strtok 用法與範例