2012-11-14 115 views
1
bool check(const char* pass); 
  1. 不常量意味着我不能修改的char *函数里面?如何妥善处理为const char * C++中

  2. char * c是否有像contains(char c)那样的函数来检查char是否在char *内?

  3. 如何获得char *中的第4个字符?

  4. 是否有任何函数给出该char *的长度。在检查'\ 0'的位置旁边?

+1

常量保护他的左侧,除非有什么对他的左 ,然后才可以保护他的右手边 – Maroun

+3

了'字符*'不“包含”字符。它没有“内部”字符串,并且没有长度。它指向一个字符,它可能是也可能不是一个nul结尾字符串的第一个字符。以nul结尾的字符串包含字符并且具有长度。 –

+2

对4的回答是一个很大的** ** NO **。这是你推荐使用'std:string'而不是'char *'的原因之一。你可以继续为自己谋生,或者你可以听取有经验的程序员的建议。如果你在使用'std :: string'时遇到了一些麻烦,那么问一下如何正确使用它,最后它是值得的。 – john

回答

8

使用std::string代替。

  1. 不,这意味着你不能修改char秒。

  2. char*是一个指针,它没有任何功能。你可以查看strchr

  3. pass[3]

  4. strlen,但它会检查'\0'内部。

+0

Ad2。我在询问任何可以检查char *类型对象是否包含特定字符的静态或非静态函数 – Robert

+1

“您可以查找strstr',但它不会将单个char作为参数” - 或查找strchr ',它确实需要一个字符(它将其作为“int”而不是“char”)。 –

+0

@SteveJessop不知道存在。 –