注册 登录
编程论坛 C++教室

急:字符串如何转换为整数,如"12345"(是字符串)转换为12345

huangqing 发布于 2009-11-12 18:46, 2643 次点击


解析一下原理!不要代码!

[ 本帖最后由 huangqing 于 2009-11-12 19:04 编辑 ]
11 回复
#2
forclwy2009-11-12 20:17
这种题很多哦,百度就好了!
#3
huaxinwu12009-11-12 21:05
程序代码:
#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;
}
#4
huaxinwu12009-11-12 21:20
VC++ 6.0 验证通过
#5
huaxinwu12009-11-12 21:21
程序代码:
#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;
}
#6
一旋无风2009-11-12 21:25
是数字字符串吗?
#7
huangqing2009-11-13 19:01
是的哦!
 
谢谢楼上的各位!】
#8
shl3052009-11-13 19:39
程序代码:
#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;
}
#9
一旋无风2009-11-14 02:03
如果是数字字符串可以调用函数:
比如
char str[6]="12345";
int m=atoi(str);atoi()函数将C风格的整型字符串转换成int型
cout<<str;
#10
一旋无风2009-11-14 02:04
回复 7楼 huangqing
如果是数字字符串可以调用函数:
比如
char str[6]="12345";
int m=atoi(str);atoi()函数将C风格的整型字符串转换成int型
cout<<str;
#11
一旋无风2009-11-14 02:05
回复 10楼 一旋无风
错了:额。。。
如果是数字字符串可以调用函数:
比如
char str[6]="12345";
int m=atoi(str);//atoi()函数将C风格的整型字符串转换成int型
cout<<m;
#12
asd4510060712009-11-14 20:16
STDLIB.H不是有一个atoi函数么可以用TA
1