C++ 字符串转整型

思路:首先得到一个字符串,判断是不是负数,接着把每一个字符依次转成数字,就大功告成了.

  1. 定义字符串并输入

    1
    2
    char a[1000];
    gets(a);
  2. 判断是否是负数

    1
    2
    if(a[0]=='-') first=1;//如果是负数则从下一位开始转换
    else first=0;
  3. 把每一个字符依次转成数字
    公式是 num*10+nextnum

    1
    2
    3
    4
    5
    for(int i=first;i<len;i++)
    {
    num*=10;
    num+=int(a[i]-'0');
    }

完整代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int stoii(char a[])//转换函数
{
int len=strlen(a);//字符串长度
int num=0,first;
if(a[0]=='-') first=1;//如果是负数则从下一位开始转换
else first=0;
for(int i=first;i<len;i++)
{
num*=10;
num+=int(a[i]-'0');
}
if(first) num*=-1;
return num;
}
int main()
{
char a[1000];
gets(a);
cout<<stoii(a);//a是需要转换的字符串
return 0;
}

备注:本人不能保证该文章和该文章中的代码无错误,无缺陷,请自行判断后使用.如遇到问题请联系本人.转载请标明出处.