atoi函数和itoa函数以及模拟使用

article/2025/9/28 22:25:43

1.atoi函数

    atoi函数的作用是把一个字符串换成一个整型数据,该函数包含于头文件#include<stdlib.h>中。
    1.空字符返回数字0;
    2.数字字符前有空白字符跳过;
    3.数字字符前有+、-号,做整数类型的正负处理;
    4.数字字符前有其他字符返回0;
简单举例:

#include <stdio.h>
#include<stdlib.h>
int main() {char arr1[] = "";        //输出0char arr2[] = "   123";  //输出123char arr3[] = "   -123"; //输出-123char arr4[] = "   +123"; //输出123char arr5[] = "abc123";  //输出0char arr6[] = "abc123zb";//输出0int a1 = atoi(arr1);int a2 = atoi(arr2);int a3 = atoi(arr3);int a4 = atoi(arr4);int a5 = atoi(arr5);int a6 = atoi(arr6);printf("%d\n%d\n%d\n%d\n%d\n%d",a1,a2,a3,a4,a5,a6);return 0;
}

结果展示: 

 2.模拟使用atoi函数

#include <stdio.h>
#include<string.h>
#include<stdlib.h>
#include<assert.h>
#include<ctype.h>
int my_atoi(char* str) {assert(str);//空指针if (*str == '\0')return 0;while (*str == ' ') {//跳过空格str++;}int a = 1,num=0;if (*str == '+') {//判断正负str++;}else if (*str == '-') {//判断正负a = -1;str++;}long long  n = 0;while (isdigit(*str)) {num = *str - '0';n = n * 10 + a * num;if (n > INT_MAX || n < INT_MIN)return 0;str++;}if (*str == '\0') {return (int)n;}return (int)n;
}
int main() {char arr1[] = "";        //输出0char arr2[] = "   123";  //输出123char arr3[] = "   -123"; //输出-123char arr4[] = "   +123"; //输出123char arr5[] = "abc123";  //输出0char arr6[] = "abc123zb";//输出0printf("%d\n%d\n%d\n%d\n%d\n%d", my_atoi(arr1),my_atoi(arr2),my_atoi(arr3),my_atoi(arr4),my_atoi(arr5),my_atoi(arr6));return 0;
}

结果展示:

3.itoa函数

     itoa函数的作用是将一个整数转换成字符串。该函数包含于头文件#include<stdlib.h>中
用法:itoa(整型数据,目标字符串,进制)
而在vs 中要使用—  _itoa函数才行。
简单举例:

#include<stdio.h>
#include<stdlib.h>
int main()
{int n = 123;char num1[20] = { 0 };char num2[20] = { 0 };char num3[20] = { 0 };char num4[20] = { 0 };_itoa(n, num1, 10);//将整型的n转为十进制的字符数字存储在num中为123_itoa(n, num2, 2);//将整型的n转为二进制的字符数字存储在num中为1111011_itoa(n, num3, 8);//将整型的n转为八进制的字符数字存储在num中为1111011_itoa(n, num4, 16);//将整型的n转为十六进制的字符数字存储在num中为1111011printf("%s\n%s\n%s\n%s", num1,num2,num3,num4);return 0;
}

结果展示: 

 

4.模拟使用itoa函数 

    

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<string.h>
#include<stdlib.h>
void my_itoa(int num, char* str, int radix){char* left = str;int flag = num;if (num < 0)   //考虑到负数的情况num = -num;while (num > 0){*str++ = num % radix + '0';num /= radix;}if (flag < 0){*str++ = '-';}*str = '\0';//此时是逆序存放的,需要翻转过来char* right = str - 1;while (left < right){char tmp = *left;*left = *right;*right = tmp;++left;--right;}}
int main()
{int n = 123;char num1[20] = { 0 };char num2[20] = { 0 };char num3[20] = { 0 };char num4[20] = { 0 };my_itoa(n, num1, 10);//将整型的n转为十进制的字符数字存储在num中为123my_itoa(n, num2, 2);//将整型的n转为二进制的字符数字存储在num中为1111011my_itoa(n, num3, 8);//将整型的n转为八进制的字符数字存储在num中为173my_itoa(n, num4, 16);//将整型的n转为十六进制的字符数字存储在num中为7pprintf("%s\n%s\n%s\n%s", num1,num2,num3,num4);return 0;
}

 结果展示: 

 

 

 

      


http://chatgpt.dhexx.cn/article/MMBp3hUV.shtml

相关文章

itoa函数的实现

itoa的实现 &#xff08;我的编译器是VS2013&#xff09; itoa()函数表示&#xff1a;把一个整形转换为相应的字符串&#xff1b;eg: 整形1234 转换为“1234”&#xff0c;整形-123转换为“-123”。 itoa代码实现 #define _CRT_SECURE_NO_WARNINGS 1 #include<iostream&…

自己编写itoa 函数

库函数将整型转换成字符串有库函数sprintf(“输出到某一缓存区&#xff0c;以什么格式&#xff0c;源目的&#xff09; sprintf 最常见的应用之一是把整数打印到字符串中&#xff0c;所以&#xff0c;spritnf 在大多数场合可以替代itoa。如&#xff1a; 1>把整数123 打印成一…

自己用C语言写itoa 函数和atoi函数

有些库中有atoi()函数&#xff0c;但没有itoa()函数&#xff0c;怎么办&#xff1f;自己写啊&#xff01;&#xff01;&#xff01; 一&#xff1a;先来看看库atoi()函数和itoa()函数的用法&#xff1a; 1.atoi 是把字符串转换成整型数的一个函数&#xff0c;int atoi(const …

C++之sprintf函数(itoa函数)

头文件&#xff1a;stdio.h 原型 int sprintf( char *buffer, const char *format, [ argument] … ); 参数列表 buffer&#xff1a;char型指针&#xff0c;指向将要写入的字符串的缓冲区。 format&#xff1a;格式化字符串。 [argument]…&#xff1a;可选参数&#xff0c;可以…

【c语言】字符串类型转换 | itoa函数的使用

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; 给大家跳段街舞感谢支持&#xff01;ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ …

PostGIS 入门

PostGIS 快速入门 PostGIS 是 PostgreSQL 关系数据库的空间操作扩展。它为 PostgreSQL 提供了存储、查询和修改空间关系的能力。本文中 ‘PostgreSQL’ 指代基本的关系数据库功能&#xff0c;而 ‘PostGIS’ 指代扩展的空间操作特性。 客户端&#xff0d;服务器构架 PostgreSQL…

PostGis路径分析

一、导入数据 建立PostGis数据库。 使用sample数据库做模板。 导入纽约公路矢量图层到PostGis。地图下载位置 二、生成拓扑 要生成最佳路径&#xff0c;首先要生成合法的拓扑。 生成拓扑前&#xff0c;需要添加两个字段&#xff0c;用来存储线段的首尾编号 -- Add "…

4.PostGIS

SELECT ST_GeometryFromText(POINT(116.39088 39.90763),4326); SELECT ST_GeomFromText(POINT(116.39088 39.90763),4326); SELECT ST_PointFromText(POINT(116.39088 39.90763),4326); 1、创建点类型的表&#xff0c;类型不要选择postgresql提供的空间数据类型&#xff0c;…

Postgis使用

Postgis使用 一、安装与配置 先查看目前yum源中有哪些版本可用&#xff0c;并安装合适的版本 yum search postgis安装Postgresql 10对应的版本PostGIS yum install -y postgis24_10二、创建GIS数据库 PostGIS是Postgresql的一个扩展&#xff0c;创建数据库并加载PostGIS扩…

PostGIS 路线规划

❤️通过SQL存储过程&#xff0c;利用PostGIS实现路线规划❤️ pgRouting扩展了PostgreSQL/PostGIS地理空间数据库&#xff0c;以提供地理空间路由功能。 文章目录 1、环境配置2、导入shp文件2.1、打开PostGis Shapefile插件2.2、连接数据库2.3、添加并导入矢量数据2.4、查看数…

postgis启动_PostGIS 快速入门(转)

PostGIS 是 PostgreSQL 关系数据库的空间操作扩展。它为 PostgreSQL 提供了存储、查询和修改空间关系的能力。本文中 ‘PostgreSQL’ 指代基本的关系数据库功能&#xff0c;而 ‘PostGIS’ 指代扩展的空间操作特性。 客户端&#xff0d;服务器构架 PostgreSQL 同众多数据库产品…

postgis 返回 geojson

GeoJSON 特征集合&#xff1a; {"type": "FeatureCollection","features": [{"type": "Feature","geometry": {"type": "Point","coordinates": [102.0, 0.5]},"properties&…

PostGIS 安装

安装 PostgreSQL 数据库 Windows 下载安装包 运行安装包即可 Linux 以 Ubuntu 为例, 其他版本参考官方下载页面 通过 APT 仓库安装 sudo sh -c echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d…

PostGIS安装

1首先安装PostgreSQL &#xff0c;安装完后 services.msc打开服务列表&#xff0c;找到postgresql-x64-14启动&#xff0c;如果启动不了&#xff0c;设置本地系统账户登录 2打开pgAdmin4,创建服务器 参数设置可以参考帮助文档 3安装postgis,下载地址 Index of /postgis/windows…

PostGIS 笔记

空间数据库 定义&#xff1a;存储、操作空间数据的数据库。 空间数据特点 空间数据类型是指点、线、多边形等形状&#xff1b;提供用于空间操作的高效处理的多维空间索引&#xff1b;提供用于查询空间属性和关系额空间函数。 发展历程 第1代 在传统的 GIS 实施中&#xff0c;所…

PostGIS

一、ArcGISPostGIS 打开ArcCatalog目录&#xff0c;双击添加数据库连接&#xff0c;进入数据库连接窗口。数据库类型选择PostgreSQL&#xff0c;输入实例&#xff08;安装PostgreSQL的服务器名称或IP地址&#xff09;、用户名、密码&#xff0c;以上信息无误&#xff0c;点击数…

PostGIS的安装与初步使用

想学习postgis推荐看我翻译的官方教程文档&#xff1a;https://blog.csdn.net/qq_35732147/article/details/85256640 目录 一、安装PostGIS 1.下载安装程序 2.安装PostgreSQL 二、创建空间数据库 1.打开pgAdmin 4 2.登录到服务器 3.创建空间数据库 三、导入空间数据 1.获取…

PostGIS(1):PostGIS概述

作为对象关系型数据库PostGreSQL的拓展模块&#xff0c;PostGIS可用于存储GIS数据&#xff0c;并提供了对基于GiST的R树索引支持、以及面向GIS对象的分析和处理相关的函数。 以下是PostGIS官网对其特征的介绍&#xff0c; &#xff08;1&#xff09; 先看一下百度对PostGIS的介…

PostGIS总结

PostGreSQL&#xff08;三&#xff09;PostGISPostGreSQL&#xff08;四&#xff09;PostGIS-空间数据存储PostGreSQL&#xff08;五&#xff09;PostGIS-常用函数PostGreSQL&#xff08;六&#xff09;PostGIS-空间连接和空间索引PostGreSQL&#xff08;七&#xff09;PostGIS…

postgis学习

以后估计会长期从事gis相关的工作&#xff0c;postgis作为一款功能比较强大的gis数据库还是需要好好学习一下的。虽然几何数据存储用任何一种类型的数据库都可以自行实现&#xff0c;但也仅仅只是存储&#xff0c;后续的坐标转换、空间分析等功能如果都要一一自己实现&#xff…