把字符串轉化為整數的方法


字符串轉化為整數可能是實際編程中最常用到的方法了,因為因為string很容易通過下標對每一位的數字進行操作,但是卻沒辦法實現int的加減乘除等,所以在實際編程中經常需要先用string 存下數據,操作完后再轉化為int類型

有兩種比較實用的方法可以實現

方法一:自己寫一個函數來實現

class Solution {
public:
    int StrToInt(string str) 
    {
        int length=str.length();//先計算字符串的長度
        if(length==0)
        {
            return 0;
        }
        int result=0;
        int flag=1;
        int i=0;
        if(str[i]=='-')//只能是在數據的首位輸入符號,所以只需要一次判斷即可
        {
            flag=-1;
            i++;
        }
        if(str[i]=='+')
        {
            flag=1;
            i++;
        }
        
        while(str[i]!='\0')
        {
            if(str[i]==' ')//刪掉數字前面的空格,因為不知道前面輸入了多少個空格所以需要在while循環中
            {
                i++;
            }
            if(str[i]>='0'&&str[i]<='9')
            {
                result=(result*10+flag*(str[i]-'0'));
                i++;
            }
            else
            {
                return 0;
            }
        }
        return result;
    }
};

  方法二:調用庫函數atio

#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;
int main()
{
    string str;
    cin>>str;
    int result=0;
    result=atoi(str.c_str());
    cout<<result<<endl;
    return 0;
}

  stio函數的頭文件是#include<stdlib.h>

string 是C++ STL定義的類型,atoi是 C 語言的庫函數,所以要先轉換成 char* 類型才可以用 atoi。

atoi函數原型

int atoi(const char *nptr);

  c_str是Borland封裝的String類中的一個函數,它返回當前字符串的首字符地址。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM