atoi函数

 

       Hello, 大家好,我是一代,今天给大家讲解atoi函数的有关知识

       所属专栏:C语言

       创作不易,望得到各位佬们的互三呦

 

 

函数原型:int atoi (const char * str);

头文件:stdlib.h

功能:将字符串转换为整数。即跳过空白字符,碰到负号或者数字开始转换,转换到非数字字符为止。

注意:如果str中的第一个空白字符序列并不是有效的整数,或者由于str为空或仅包含空白字符而不存在这样的序列,则不执行转换并返回0.

转换成功后,函数将转换后的整数作为int值返回。

如果atoi()函数转换失败,例如要转换的类型超过了int表示的范围,如果要转换的是正数,则返回INT_MAX(2147483647),如果要转换的是负数,则返回INT_MIN(-2147483648)

 

#include<stdio.h>
#include<stdlib.h>
int main()
{
	const char* str1 = "   +";
	const char* str2 = "   12er3";
	const char* str3 = "   -1239999999999";//超过了整形的最小值
	const char* str4 = "   \0+123";//碰到‘\0’结束
	const char* str5 = "";
	const char* str6 = "abc123";
	const char* str7 = "   \t+123";//‘\t’为一个字符
	printf("%d ", atoi(str1));
	printf("%d ", atoi(str2));
	printf("%d ", atoi(str3));
	printf("%d ", atoi(str4));
	printf("%d ", atoi(str5));
	printf("%d ", atoi(str6));
	printf("%d ", atoi(str7));
	return 0;
}

 

atoi函数模拟

 


#include<stdio.h>
#include<ctype.h>
int my_atoi(const char* str)
{
	long long result = 0;//用long long 防止溢出
	int flag = 1;
	if (*str == '\0')
		return 0;
	while (isspace(*str))
	{
		str++;
	}
	if (*str == '-')
	{
		flag = -1;
		str++;
	}
	if (*str == '+')
	{
		str++;
	}
	while (1)
	{
		if(isdigit(*str))//跳过空白字符
		{
			result = result * 10 + *str - '0';
		}
		else
		{
			return (int)result * flag;
		}
		if (result > _CRT_INT_MAX && flag == 1)
		{
			return _CRT_INT_MAX;
		}
		if (-result < -_CRT_INT_MAX - 1 && flag == -1)
		{
			return -_CRT_INT_MAX - 1;
		}
		str++;
	}
	return 0;
}
int main()
{
	char str[100];
	while (1)
	{
		gets(str);
		int n = my_atoi(str);
		if (n == -_CRT_INT_MAX - 1 || n == _CRT_INT_MAX)
		{
			printf("转换失败");
		}
		else
		printf("转换成功:%d\n", n);
	}
	return 0;
}

相关推荐

  1. atoi函数的模拟实现

    2024-03-22 21:54:01       51 阅读
  2. C++atoi函数字符串转换成数字

    2024-03-22 21:54:01       57 阅读
  3. C语言中实现atoi函数实现

    2024-03-22 21:54:01       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-22 21:54:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-22 21:54:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-22 21:54:01       82 阅读
  4. Python语言-面向对象

    2024-03-22 21:54:01       91 阅读

热门阅读

  1. 洛克王国卡小游戏2

    2024-03-22 21:54:01       39 阅读
  2. Yarn 管理的前端项目转换为使用 npm

    2024-03-22 21:54:01       41 阅读
  3. Redis 产生阻塞的原因,如何找到阻塞的原因

    2024-03-22 21:54:01       39 阅读
  4. 快速排序--C语言

    2024-03-22 21:54:01       44 阅读
  5. 【大数据技术】Hive基本原理以及使用教程

    2024-03-22 21:54:01       44 阅读
  6. docker 修改默认存储位置

    2024-03-22 21:54:01       38 阅读
  7. CSS color-mix() 函数

    2024-03-22 21:54:01       43 阅读
  8. less与sass哪个更好用

    2024-03-22 21:54:01       47 阅读
  9. NoSQL

    NoSQL

    2024-03-22 21:54:01      28 阅读
  10. python基础知识(四)

    2024-03-22 21:54:01       41 阅读
  11. 设计模式 抽象工厂

    2024-03-22 21:54:01       51 阅读
  12. 两个一元多项式相乘

    2024-03-22 21:54:01       43 阅读