【问题标题】:convert char to string将字符转换为字符串
【发布时间】:2015-01-18 06:53:06
【问题描述】:

喂?我想知道“如何将字符转换为字符串”

这是我的 C 代码

    string firSen;
    int comma1=0;
    cout<<"Please write your sentence"<<endl;
    getline(cin,first);
    int a=firSen.first("string");

    for(i=a;firSen[i] != ',';i++)
        comma1=i;
    cout<<firSen[comma1-3]<<firSen[comma1-2]<<firSen[comma1-1]<<endl;

我会写“字符串是100s,谢谢”

对于字符类型,我知道 firSen[comma1-3]=1, firSen[comma1-2]=0, firSen[comma1-1]=0。

我想把这些字符变成字符串 (就像 1,0,0 变成 100 的字符串)因为我想使用 atoi 函数....

你知道怎么把char转成字符串吗?

【问题讨论】:

  • char+"" 不就行了吗?
  • 也许你应该查一下std::stoi
  • 投票结束。 (不清楚你在问什么)。
  • @Nabin,没有。这将等同于""[c],这是未定义的行为,除非c==0

标签: c++ string char


【解决方案1】:

您可以使用std::istringstream 代替atoi。 像这样的:

std::istringstream ss(firSen.substr(comma1-3)); int val; ss >> val;

【讨论】:

  • 或者只使用std::stoi之类的。
【解决方案2】:

在这种情况下,如果你知道你想要的位置和长度,你可以只提取一个子字符串:

std::string number(firSen, comma1-3, 3);

并使用 C++11 转换函数将其转换为整数类型:

int n = std::stoi(number);

或者,从历史上看,一个字符串流:

int n;
std::stringstream ss(number);
ss >> n;

或者,如果你想成为真正的老派,C 库

int n = std::atoi(number.c_str());

还有其他构建字符串的方法。您可以从字符列表中对其进行初始化:

std::string number {char1, char2, char3};

您可以附加字符和其他字符串:

std::string hello = "Hello";
hello += ',';
hello += ' ';
hello += "world!";

或者使用字符串流,也可以格式化数字等类型:

std::stringstream sentence;
sentence << "The string is " << 100 << ", thank you.";

【讨论】:

    猜你喜欢
    • 2019-10-10
    • 2019-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    相关资源
    最近更新 更多