2012-04-15 28 views
0

可以說我有 string1 = "DDD DXXXX" string2 = "DDXXXX" string3 = "DXXXX"如何從字符串中提取子,如果字符串的長度是未知

,如果我想提取XXXX所有的時間,那麼什麼是在C的最佳方式? substr,strncpy,strndup都需要一個起始位置。

是正則表達式唯一的選擇嗎?

+0

通過提取你的意思是從字符串中刪除? – hmjd 2012-04-15 22:43:22

回答

2

使用strstr()查找字符串的一部分"XXXX"

char string1[] = "DDXXXX"; 
char* xxxx_ptr = strstr(string1, "XXXX"); 
if (xxxx_ptr) 
{ 
    /* Do something. */ 
} 
1

如果您知道它始終位於最後並且長度固定,則可以通過計算字符串長度(strlen())並減去固定長度來計算其起始位置。

這是假設子永遠是您檢查

+0

不,跟在目標子字符串後面的字符串長度是可變的。 – user1335161 2012-04-15 22:51:38

+0

這意味着它必須符合您可以檢查的模式。在這種情況下,正則表達式可能是一個很好的通用工具來解決這個問題 – Attila 2012-04-15 22:53:53

相關問題