一次将C ++转换为String的一个char

时间:2012-10-30 05:47:47

标签: c++ typeconverter

基本程序,用于创建超过10000的随机数,然后以单词格式打印出数字。

问题是,对于eNum=atoi(Result[i]);行,我收到编译器错误,说明变量std::string

Error:argument of type "char" is incompatible with parameter of type "const char*" 

这是什么意思?我以为我正在使用一个char并将其转换为int

#include <iostream>
#include <stdlib.h>
#include <sstream>
#include <string>
using namespace std;


enum Numbers {Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine, Point } eNum;

void main(void)
{
  int iRnd, iTemp;
  string Result;
  iRnd = rand() %  (sizeof(int)-10000) + 10000;
  ostringstream convert;
  convert << iRnd;
  Result = convert.str();

  cout << "\nRandmon number is: " << iRnd << endl << "Converted Number is : " << Result << endl;

  for (int i=0;i<Result.length();i++)
  {
    eNum = atoi(Result[i]);
    cout << eNum; 
    system("pause");
  }
}

1 个答案:

答案 0 :(得分:4)

atoi()函数需要一个C字符串。要么摆脱整个代码并使用

int num = atoi(someString.c_str());

进行转换,或在代码中更改

eNum = atoi(result[i]);

eNum = result[i] - '0';