为什么错误"invalid conversion from 'char' to 'const char*"?
Why is the error "invalid conversion from 'char' to 'const char*"?
可能重复:
C++将字符转换为常量字符*
我有一个代码片段:
string opposite(string c)
{
if(c == (string) """){return """;}
if(c == (string) "<"){return ">";}
throw;
}
int load_end(int start, string code)
{
//start is the begining of "header.h" or <header> in #load "header.h" or #load <header>
//code is self explanitory
//This function returns the end of "header.h" or <header> in #load "header.h" or #load
string chr = " ";
int e;
string asdf = opposite(code[start]);
for(int i = start; chr == asdf; i++)
{
e = i;
chr = code[i];
}
return e;
}
在定义单词"asdf"的行中,出现错误;"从'char'到'const-char*的转换无效"[-fpermission]"。还会发生另一个错误:"c:\mingw\bin。。\lib\gcc\mingw32\4.6.2\include\c++\bits\basic_string.tcc|214|错误:初始化'std::basic_string<_CharT,_Traits,_Alloc>::basic_string(const_CharT*,const_Alloc&
问题是,正如编译器有益地告诉我们的那样,您正在发送一个字符的地址,而相反的函数需要一个字符串。
- 首先,让我们解决代码中的一些问题,如果函数有返回值,那么总是让函数为其他情况返回一些东西。如果两个if条件都失败,你的反向函数会返回什么?想想看。也许你可以返回一个错误字符串或一个空字符串。这总是一种简洁的编码风格
- 第二,这是一个更关键的问题,当函数实际接收一个字符并返回一个字符时,为什么要使用相反的函数来接收一个字符串并返回字符串
- 其他可能的问题是chr未初始化。chr在这里的角色是什么?如果你能纠正以上问题,并澄清一点,我们可以帮助你
string[index]
返回的是一个字符,而不是字符串
查看文档:http://www.cplusplus.com/reference/string/string/operator%5B%5D/
尝试修复它:
char opposite(const char c)
{
if(c == '<')
{
return '>';
}
return c; // (c == '"') { return '"'; }
}
int load_end(int start, string code)
{
//This function returns the end of "header.h" or <header> in #load "header.h" or #load <header>
char chr = 0;
for(int i = start; chr == opposite(code[start]); i++)
{
chr = code[i];
}
return 0;
}
相关文章:
- 如何解决"invalid conversion from 'char' to 'const char*'"
- Writing Char to Arduino EEPROM
- memcpy unsigned char to int
- 如何修复C++中的'cannot convert char to char*'错误?
- 返回"Cannot convert from 'std::ofstream {aka std::basic_ofstream<char>}' to bool"错误
- 使用strupr和strlwr时如何解决错误"invalid conversion of char to char*"?
- C++ cast char * to unsigned char
- Char to Int - C++
- Qt char* to QString
- 找不到错误"invalid conversion from char to const char*"的解决方案
- nameless char[] to std::string& reference
- atoi() - from char to int
- Unicode const char* to JString using JNI and C++
- 了解错误"error: cannot convert ‘char**’ to ‘const char*’ for argument ‘1’ to ‘double atof(const char*)’"
- const char* to LPCWSTR in Qt
- "incompatible types in assignment of 'char' to 'char'[100]"我使用的是 strcat 对吗?
- const char * to vector<unsigned char> Initalisation
- c++ const char* to char*
- 引起'Cannot convert from const char * to char *'
- char to char* issues