ant*_*009 4 c++ visual-studio-2005
Visual Studio c ++ 2005
我在这段代码的最后一行收到错误.
int Utils::GetLengthDiff ( const char * input, int & num_subst )
{
int num_wide = 0, diff = 0 ;
const char * start_ptr = input ;
num_subst = 0 ;
while ( ( start_ptr = strstr ( start_ptr, enc_start ) ) != NULL )
{
char * end_ptr = strstr ( start_ptr, enc_end ); // Error
Run Code Online (Sandbox Code Playgroud)
所以我改变了这一行,它运作正常
const char * end_ptr = strstr ( start_ptr, enc_end );
Run Code Online (Sandbox Code Playgroud)
那么为什么我还需要将end_ptr声明为const呢?
非常感谢,
Joh*_*ler 13
C++有两个这个函数的重载版本.http://www.cplusplus.com/reference/clibrary/cstring/strstr/
const char * strstr ( const char * str1, const char * str2 );
char * strstr ( char * str1, const char * str2 );
Run Code Online (Sandbox Code Playgroud)
由于您start_ptr是const char *C++编译器解析调用了一个版本const char *作为第一个参数,该版本也返回一个const char *,所以你必须改变你的返回值相匹配.
| 归档时间: |
|
| 查看次数: |
11830 次 |
| 最近记录: |