首先要保证字符数组或字符串中的数据是数字,这样才能转换。
检测字符数组或字符串中是否为数字的方法:
遍历字符数组或字符串,检测是否有非数字字符,若有则无法转换,若没有则可以进行转换。
将字符数组或字符串转换为数字的方法:
定义一个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()函数