將字符數組中的字符轉換爲整型變量的數字 將字符串轉換爲數字

 

 

首先要保證字符數組或字符串中的數據是數字,這樣才能轉換。

檢測字符數組或字符串中是否爲數字的方法:

遍歷字符數組或字符串,檢測是否有非數字字符,若有則無法轉換,若沒有則可以進行轉換。

將字符數組或字符串轉換爲數字的方法:

定義一個int型變量,初始化爲0;

然後遍歷字符數組或字符串,每遍歷一個字符,將其與乘10後的int變量相加(x  = x *10 + (str[i] - 48));//由於字符存儲形式是按ASCLL碼存儲的,所以要減48(代表字符"0",數字0的ASCLL碼爲48)

最終得到轉換好的int型變量。

 

C語言  字符數組和字符串

#include <iostream>
#include <cstring>
using namespace std;

int str_to_int(char * str);///將字符數組中的字符轉換爲整型變量的數字

int main()
{
    char str[10] = "1234";
    cout << str << endl;
    int y = str_to_int(str);
    cout << y << endl;
    return 0;
}

int str_to_int(char * str)
{///將字符數組中的字符轉換爲整型變量的數字
    int y = 0;
    cout << "str的長度爲:" << strlen(str) << endl;
    cout << "將strlen的返回值強制轉換爲int後的長度爲" << (int)strlen(str) << endl;
    cout << str[0] << endl;
    for(int i = 0; i < (int)strlen(str); i++)///把強制轉換去掉會發現提示warning
    ///strlen返回值是無符號數,無法直接和int(有符號數)比較,無符號數可以轉換爲有符號數
    {
        y = y * 10 + (str[i] - 48);///此處要減48(ASCLL碼中48爲數字0)
    }                             ///字符串存儲的是ASCLL碼
    return y;
}

字符數組獲取字符串長度用 strlen()函數

 

C++ string對象

#include <iostream>
#include <cstring>
#include <string>
using namespace std;

int string_to_int(string str);///將string變量轉換爲整型變量的數字

int main()
{
    string str = "1234";
    cout << str << endl;
    int y;
    y = string_to_int(str);
    cout << y << endl;
    return 0;
}
int string_to_int(string str)
{///將字符數組中的字符轉換爲整型變量的數字
    int y = 0;
    cout << "str的長度爲:" << str.length() << endl;
    cout << "將length()的返回值強制轉換爲int後的長度爲:" << (int)str.length() << endl;
    cout << str[0] << endl;///直接輸出是字符形式,但是它存儲的是ASCLL碼
    for(int i = 0; i < (int)str.length(); i++)///把強制轉換去掉會發現提示warning
    ///length()返回值是無符號數,無法直接和int(有符號數)比較,無符號數可以轉換爲有符號數
    {
        y = y * 10 + (str[i] - 48);///此處要減48(ASCLL碼中48爲數字0)
    }                             ///字符串存儲的是ASCLL碼
    return y;
}

string對象獲取字符串長度用 length()函數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章