2015-04-03 46 views
0

我想提取的「/」油嘴串效用函數(echivalent爲strcspn)

例如第一次出現之後的存在的字符串一個具有一個char *卡在這種形式中的一種:

hw:0/Line 

    default/Master 

,我需要的char *通道(線路,碩士,...)

在標準C可以用 「strcspn」 和 「strlen的」

char *card, *channel; 
    int i; 

    i = strcspn(card, "/"); 
    if (i == strlen(card)) { 
     channel = "Master"; 
    } else { 
     card[i] = 0; 
     channel = card + i + 1; 
    } 

如何使用glib字符串實用程序函數執行此操作?

回答

2

strcspnstrlen怎麼了?

GLib重新實現了很多東西C99和POSIX,因爲它的目標是C89編譯器。它不會重新實現像strlenstrcspn之類的東西,因爲不需要它們在C89中。

GLib也傾向於實現很多功能的UTF-8版本,雖然有一個g_utf8_strlen我不知道g_utf8_strcspn我不認爲這是真的需要在這種情況下。如果是,那麼你可能必須通過迭代遍歷字符串g_utf8_next_char並檢查g_utf8_get_charg_utf8_get_char_validated的結果來自己實現它。

相關問題