0

我有一个名为“String”的变量,它可能具有以下值:

const char* String = "/v1/AUTH_abb52a71-fc76-489b-b56b-732b66bf50b1/test/DSC_0188.JPG";

或者

const char* String = "/auth/v1.0";

或者

const char* String = "/v2/AUTH_abb52a71-fc76-489b-b56b-732b66bf50b1/images?limit=1000&delimiter=/&format=xml";

现在我想确定“String”是否有字符“v1”。检查这必须是精确的。我尝试使用 strchr,但它不太准确,因为它不将“v1”作为一个字符,而是将“v”和“1”作为两个单独的字符。此外,我不能使用命名空间标准和库字符串,我只能使用“string.h”。在这些限制内,如何准确检查变量“String”是否具有字符“v1”?

谢谢你。

4

2 回答 2

6

我想确定“字符串”是否有字符“v1”

我只能使用“string.h”

那么你可能想要strstr. v1也不是一个字符,它是一个字符串。


旁注:为什么cstring在 C++ 中使用?什么样的老师还在叫string.h?!

于 2012-04-26T07:53:24.933 回答
3

v1不是任何字母表中的字符。这是一个正确的字符串“v1”,正如@cnicutar 提到的,在字符串中搜索字符串的 c 方法是使用strstr. 它非常易于使用并且运行速度也非常快的KMP(尽管对于您的字符串类型来说它并不那么重要)。

我建议你:

  • 始终以小型大写字母开头(即String-> my_string)命名您的变量
  • 将您的字符串声明为const char[],无需干扰指针,当您可以避免它们时。将其声明为指针可能会使您感到困惑,因为您为字符串动态分配了内存。
于 2012-04-26T07:58:35.070 回答