#include<stdio.h>
#include<limits.h>//头文件定义最大最小的整形
#include<iostream>//包含system函数
using namespace std;
int StrToInt(const char* str)//字符型数组转换成整形
{
if (str == NULL || *str == '\0')
{
return 0;
}
long long num = 0;
int sign = 1;
while (*str == ' ')//遇到空格就跳过
{
str++;
}
if (*str == '+')//遇到‘+’表示是整数
{
str++;
}
else if (*str == '-')//遇到‘-’表示是负数
{
str++;
sign = -1;
}
while (*str != '\0')
{
if (*str >= '0'&&*str <= '9')
{
num = num * 10 + (*str - '0')*sign;
if (num >= INT_MAX)
{
return INT_MAX;
}
else if (num <= INT_MIN)
{
return INT_MIN;
}
}
else
{
break;
}
str++;
}
return (int)num;//注意将返回值转换为int型
}
int main()
{
char str1[] = " +125874";
char str2[] = "-789546";
char str3[] = "4587q";
char str4[] = "qq456";
char str5[] = "0";
char str6[] = "12345678941123456789";
char str7[] = " -1245678941253647845612";
char str8[] = "\0";
printf("%d\n", StrToInt(str1));
printf("%d\n", StrToInt(str2));
printf("%d\n", StrToInt(str3));
printf("%d\n", StrToInt(str4));
printf("%d\n", StrToInt(str5));
printf("%d\n", StrToInt(str6));
printf("%d\n", StrToInt(str7));
printf("%d\n", StrToInt(str8));
system("pause");
return 0;
}
将字符串转化为整形
猜你喜欢
转载自blog.csdn.net/wxy2020915/article/details/128575123
今日推荐
周排行