【问题标题】:Conversion std::string to char [closed]将 std::string 转换为 char [关闭]
【发布时间】:2016-06-10 01:09:12
【问题描述】:

怎么了?

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;
        }
    }

线路错误

char t = _text;

错误

没有“std :: string”和“char”合适的转换函数

我使用的是 msvc 2012,此代码在 linux 编译器下运行良好,但在 windows 下运行良好。

【问题讨论】:

  • 不不不不。不要写这样的代码。 :(
  • 错误发生在哪一行?你知道,我们不是读心术的人!
  • 我非常怀疑 std::string _text = ...; 后跟 char t = _text; 是否可以使用 any 编译器进行编译。
  • @dohdle 你的错误信息格式错误,按Ctrl+C、Ctrl+V难吗?
  • int ii, length; length = sizeof(words)/sizeof(words[0]); for(ii=0; ii &lt; int(length); ii++) 这是冒犯性的。我很生气。

标签: c++


【解决方案1】:

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

char t = _text;

应该替换为

char t = _text[i];

【讨论】:

  • 已经试过了。错误:!=:'char []'它与'int'的间接级别不同
  • 鉴于发布的代码,这是不可能的。
  • @dohdle 那么,问题出在您发布的代码中不是。我已经复制了你的代码 sn-p(不包括 asLowerCaseString 的用法,因为你没有提供它的实现),它编译得很好。
猜你喜欢
  • 2016-09-12
  • 2020-03-28
  • 2010-11-14
  • 2013-07-18
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
  • 2014-07-23
  • 2013-09-10
相关资源
最近更新 更多