如何在c ++中确定字符串中的字符

时间:2012-04-26 07:52:06

标签: c++ c

我有一个名为“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'作为两个单独的字符。而且我不能使用namepace std和library string,我只能使用“string.h”。在这些限制内,如何准确检查变量“String”是否具有字符'v1'?

谢谢。

2 个答案:

答案 0 :(得分:6)

  

我想确定“String”是否包含字符'v1'

     

我只能使用“string.h”

然后你可能想要strstr。此外v1不是字符,而是字符串。


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

答案 1 :(得分:3)

v1不是任何字母表中的字符。这是一个正确的字符串“v1”,并且@cnicutar提到在字符串中搜索字符串的c方式是使用strstr。它很容易使用并且运行KMP也很快(虽然对于你的字符串来说它并不是那么重要)。

我建议你:

  • 始终将您的变量命名为小型上限(即String - > my_string
  • 将您的字符串声明为const char[],当您可以避免它们时,无需干扰指针。将此声明为指针可能会让您感到困惑,您为字符串动态分配了内存。