首頁 >後端開發 >C++ >如何在 C 中檢查前綴並提取數字子字串?

如何在 C 中檢查前綴並提取數字子字串?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-03 09:22:29811瀏覽

How Can I Check for Prefixes and Extract Numeric Substrings in C  ?

在C 語言中檢查前綴並提取數字子字串

在Python 中,檢查字串是否以特定前綴開頭並將子字串轉換為整數是一項簡單的任務。然而,在 C 中,如何實現類似的功能可能並不明顯。

要確定字串是否以某個子字串開頭,我們可以使用 rfind 函數,並將 pos 參數設為零。這確保搜尋僅限於字串的開頭。例如:

<code class="cpp">std::string str = "tititoto";
if (str.rfind("titi", 0) == 0) {
    // The string starts with "titi"
}</code>

在上面的範例中,pos 設定為零,這將搜尋限制為前綴。因此,如果字串以指定的子字串開頭,則 rfind 傳回 0。否則,返回std::string::npos,表示失敗。

在C 20及更高版本中,由於std::string和std::string_view中引入了starts_with,該過程變得更簡單。

<code class="cpp">std::string str = "tititoto";
if (str.starts_with("titi")) {
    // The string starts with "titi"
}</code>

要從字串中提取數字子字串,我們可以使用 std::stoi。例如,如果我們有一個字串“--foo=98”,我們可以如下提取數值:

<code class="cpp">std::string arg = "--foo=98";
std::size_t pos = arg.find("--foo=");
if (pos != std::string::npos) {
    std::string foo = arg.substr(pos + sizeof("--foo=") - 1);
    int foo_value = std::stoi(foo);
}</code>

在這種情況下,我們使用find 來定位“ --foo=“前綴。如果找到,我們使用 substr 提取子字串,並使用 std::stoi 將其轉換為整數。

這些技術為在 C 中處理字串提供了高效且簡潔的解決方案。

以上是如何在 C 中檢查前綴並提取數字子字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn