将字符数组中的字符转换为整型变量的数字 将字符串转换为数字

 

 

首先要保证字符数组或字符串中的数据是数字,这样才能转换。

检测字符数组或字符串中是否为数字的方法:

遍历字符数组或字符串,检测是否有非数字字符,若有则无法转换,若没有则可以进行转换。

将字符数组或字符串转换为数字的方法:

定义一个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()函数

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