2012-04-15 27 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

相关问题