C++ 将std::string转换为char

C++ 将std::string转换为char,c++,C++,怎么了 std::string _text = asLowerCaseString(text); for(uint8_t i = 0; i < _text.length(); i++) { char t = _text; if(t != '-' && t != '.' && !(t >= 'a' && t <= 'z')) { _text.erase(i, 1);

怎么了

std::string _text = asLowerCaseString(text);
for(uint8_t i = 0; i < _text.length(); i++)
    {
    char t = _text;
    if(t != '-' && t != '.' && !(t >= 'a' && t <= 'z'))
        {
        _text.erase(i, 1);
        i--;
        }
    }

std::string words []= {".net","no-ip", ".net", ".com", ".com.br", ".org", ".pl", ".net"};
int ii, length;
length = sizeof(words)/sizeof(words[0]);
for(ii=0; ii < int(length); ii++)
    {
    if (int(_text.find(words[ii])) > 0 || _text == words[ii])
        {
        return false;
        break;
        }
    }
错误

没有合适的转换函数std::string a char


我使用的是msvc 2012,这段代码在linux编译器下可以正常工作,但在windows下不行。

没有从字符串到字符的转换

char t = _text;
应该由

char t = _text[i];

不,不,不,不要这样写代码错误发生在哪一行?你知道,我们不是读心术的人!我非常怀疑std::string _text=。。。;后跟字符t=_text;将使用任何编译器进行编译。@dohdle如果错误消息格式不正确,按Ctrl+C,Ctrl+V是否困难?int ii,length;长度=sizeofwords/sizeofwords[0];forii=0;ii<长度;这是冒犯。我生气了,已经试过了。错误:!=:'char[]”它在间接寻址级别上与“int”不同,这在发布的代码中是不可能的。@dohdle那么,问题不在您发布的代码中。我复制了您的代码片段,但没有使用asLowerCaseString,因为您没有为它提供实现,而且它编译得很好。
char t = _text[i];