我有一个名为“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'?
谢谢。
答案 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[]
,当您可以避免它们时,无需干扰指针。将此声明为指针可能会让您感到困惑,您为字符串动态分配了内存。