比较两个字符串 - 获取较长字符串的正确部分

gaf*_*fcz 1 c

我有两个字符串,例如:

  • str1 = "aaabbbcccdddeee"
  • str2 = "aaabbbccc"

如何做到像str1 - str2获取dddeee子串?

Oli*_*rth 5

如果str2保证是前缀str1,那么这就足够了:

const char *str3 = &str1[strlen(str2)];
Run Code Online (Sandbox Code Playgroud)

这相当于:(正如@James在评论中指出的那样)

const char *str3 = str1 + strlen(str2);
Run Code Online (Sandbox Code Playgroud)

当然,str3它只是一个指向原始字符串之一的指针.如果原始字符串的内容发生变化,那么结果也会发生变化.所以你可能想要创建一个副本,使用malloc()strcpy()(然后free()在某些时候).