可以說我有 string1 = "DDD DXXXX" string2 = "DDXXXX" string3 = "DXXXX"
如何從字符串中提取子,如果字符串的長度是未知
,如果我想提取XXXX所有的時間,那麼什麼是在C的最佳方式? substr,strncpy,strndup都需要一個起始位置。
是正則表達式唯一的選擇嗎?
可以說我有 string1 = "DDD DXXXX" string2 = "DDXXXX" string3 = "DXXXX"
如何從字符串中提取子,如果字符串的長度是未知
,如果我想提取XXXX所有的時間,那麼什麼是在C的最佳方式? substr,strncpy,strndup都需要一個起始位置。
是正則表達式唯一的選擇嗎?
使用strstr()
查找字符串的一部分"XXXX"
:
char string1[] = "DDXXXX";
char* xxxx_ptr = strstr(string1, "XXXX");
if (xxxx_ptr)
{
/* Do something. */
}
如果您知道它始終位於最後並且長度固定,則可以通過計算字符串長度(strlen()
)並減去固定長度來計算其起始位置。
這是假設子永遠是您檢查
不,跟在目標子字符串後面的字符串長度是可變的。 – user1335161 2012-04-15 22:51:38
這意味着它必須符合您可以檢查的模式。在這種情況下,正則表達式可能是一個很好的通用工具來解決這個問題 – Attila 2012-04-15 22:53:53
通過提取你的意思是從字符串中刪除? – hmjd 2012-04-15 22:43:22