急:字符串如何转换为整数,如"12345"(是字符串)转换为12345
解析一下原理!不要代码!
[ 本帖最后由 huangqing 于 2009-11-12 19:04 编辑 ]
程序代码:#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
int SToI(const char*& str)
{
int var = 0;
int len = 0;
len = strlen(str);
char c;
for(int i=0; i<len; ++i)
{
c=str[i];
var = var*10 + (int)(c-48);
}
return var;
}
int main()
{
const char* str = "12345";
int var = SToI(str);
cout << "\"" << str << "\" = " << var << endl;
return 0;
}
程序代码:#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
int SToI(const char*& str)
{
int var = 0;
int len = 0;
len = strlen(str);
char c;
for(int i=0; i<len; ++i)
{
c=str[i];
var = var*10 + (int)(c-48);
}
return var;
}
int main()
{
const char* str = "12345";
int var = SToI(str);
cout << "\"" << str << "\" TO " << var << endl;
return 0;
}
程序代码:#include <iostream>
#include <sstream>
#include <cstdlib>
#include <cstdio>
using namespace std;
int main()
{
char *str = "12345";
long n;
n = strtol(str, NULL, 10);
cout<<"using strtol(), n = "<<n<<endl;
n = strtoul(str, NULL, 10);
cout<<"using strtoul(), n = "<<n<<endl;
sscanf(str, "%ld", &n);
cout<<"using sscanf(), n = "<<n<<endl;
stringstream sin;
sin<<str;
sin>>n;
cout<<"using stringstream, n = "<<n<<endl;
return 0;
}