【问题标题】:How to determine a character within a string in c++如何在c ++中确定字符串中的字符
【发布时间】:2012-04-26 07:52:06
【问题描述】:

我有一个名为“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";

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

谢谢。

【问题讨论】:

    标签: c++ c


    【解决方案1】:

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

    我只能使用“string.h”

    那么你可能想要strstrv1 也不是字符,而是字符串。


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

    【讨论】:

    • 不是老师让我做的。我正在做一个项目,由于内存问题,我们在使用命名空间 std 和库字符串以及其他一些库时受到限制。
    【解决方案2】:

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

    我建议你:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      相关资源
      最近更新 更多