首先要保證字符數組或字符串中的數據是數字,這樣才能轉換。
檢測字符數組或字符串中是否爲數字的方法:
遍歷字符數組或字符串,檢測是否有非數字字符,若有則無法轉換,若沒有則可以進行轉換。
將字符數組或字符串轉換爲數字的方法:
定義一個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()函數