itoa函数,srpintf()函数 ,atoi函数

itoa函数,srpintf()函数 ,atoi函数

itoa()函数

*itoa()原型: char *itoa( int value, char string,int radix);

原型说明:

输入参数:

value:要转换的数据。
string:目标字符串的地址。
radix:转换后的进制数,可以是10进制、16进制等,范围必须在 2-36。

功能:将整数value 转换成字符串存入string 指向的内存空间 ,radix 为转换时所用基数(保存到字符串中的数据的进制基数)。

返回值:函数返回一个指向 str,无错误返回。

注意:itoa不是一个标准的c函数,他是windows特有的,跨平台写程序,要用sprintf。

#include <stdio.h>
#include <ctype.h>


//整数的各位数字加‘0’转换为char型并保存到字符数组中                                                                                           
int itoa(int n, char s[])
{
    int i;
    int j;
    int sign;

    sign = n;    //记录符号
    if(sign < 0)
    {
       n = -n;  //变为正数处理 
    }

    i = 0;
    do{
        s[i++] = n % 10 + '0';  //取下一个数字
    }while((n /= 10) > 0);

    if(sign < 0 )
    {
        s[i++] = '-';
        s[i] = '\0';
    }

    for(j = i; j >= 0; j-- )
    {
        printf("%c \r\n", s[j]);
    }
    return 0;
}
int main()
{
    int n;
    char s[20];

    n = -688;
    itoa(n, s);
    return 0;
}

srpintf()函数的功能也非常强大:效率比一些字符串操作函数要高;而且更具灵活性;可以将想要的结果输出到指定的字符串中,也可作为缓冲区,而printf只能输出到命令行上~

头文件:stdio.h

函数功能:格式化字符串,将格式化的数据写入字符串中。

函数原型:int sprintf(char *buffer, const char *format, [argument]…)

参数:

(1)buffer:是char类型的指针,指向写入的字符串指针;

(2)format:格式化字符串,即在程序中想要的格式;

(3)argument:可选参数,可以为任意类型的数据;

函数返回值:buffer指向的字符串的长度;

用处:

(1)格式化数字字符串:在这点上sprintf和printf的用法一样,只是打印到的位置不同而已,前者打印给buffer字符串,后者打印给标准输出,所以sprintf也可以用来将整型转化为字符串,比itoa效率高且如此地简便~比如:sprintf(buffer, “%d”, 123456);执行后buffer即指向字符串“123456”~

(2)连接字符:

下面通过两个例子来说明这个问题:

(a)连接以’\0’结束的字符串:

#include<stdio.h>  
int main()  
{  
    char buffer[10];  
    char *a = “1234”;  
    char *b = “5678”;  
    sprintf(buffer, ”%s%s”, a, b);  
    printf(”%s\n”, buffer);  
    return 0;  
}  
#include<stdio.h>
int main()
{
 char buffer[10];
  char *a = "1234";
 char *b = "5678";
 sprintf(buffer, "%s%s", a, b);
   printf("%s\n", buffer);
  return 0;
}

在这里插入图片描述

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

函数功能:把字符串转换成整型数。

参数str:要进行转换的字符串

返回值:每个函数返回 int 值,此值由将输入字符作为数字解析而生成。 如果该输入无法转换为该类型的值,则atoi的返回值为 0

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int a;
    char *ptr1 = "-12345";

    a = atoi(ptr1);

    printf("a = %d,%d/n", a);

    return 0;}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114900.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月27日 下午5:00
下一篇 2021年9月27日 下午6:00


相关推荐

  • MATLAB 拟合曲线

    MATLAB 拟合曲线最近做一个实验 代码中需要找出数据之间的函数关系 所以需要把数据进行拟合 找到关系式 听别人说 MATLAB 做拟合的时候特别方便 所以就测试了一下 果真方便 现在将大致的步骤罗列如下 1 用一个矩阵表示一个自变量的取值 2 用另外一个矩阵表示因变量的取值 3 检查矩阵两个矩阵的数据元素个数是否相同 一般都是一个因变量对应一个自变量 4 调用语句 cftool5 在出现

    2026年3月18日
    2
  • nano-banana怎么用AI绘画生成作品?nanoleaf app怎么用生图工具操作教程?

    nano-banana怎么用AI绘画生成作品?nanoleaf app怎么用生图工具操作教程?

    2026年3月15日
    3
  • 一个多道批处理仅有p1p2_nx300h的缺点

    一个多道批处理仅有p1p2_nx300h的缺点(注:%0就是该batch文件的文件名 )%~dp0的意思是 更改当前目录为批处理文件的目录 比如你有个批处理a.bat在D:/qq文件夹下  a.bat内容为 cd/d%~dp0 在这里 cd/d%~dp0的意思就是cd/dd:/qq %0代表批处理本身 d:/qq/a.bat ~dp是变量扩充 d既是扩充到分区号 d: p就是扩充到路径 

    2025年12月3日
    4
  • 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)——初识WiX

    使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(一)——初识WiXVisualStudio打包安装七宗罪开发.NET的人,肯定会使用VisualStudio里面自带的MSI打包安装工具框架。如果是在一般情况下,这个打包安装框架已经完全足够满足产品发布安装的需要了。它的制成品,是一个setup.exe,一个MSI安装文件,如果你选择项目以来的其他.

    2022年7月20日
    14
  • 0xC000005读取发生访问冲突_vs读取访问权限冲突

    0xC000005读取发生访问冲突_vs读取访问权限冲突遇见这种问题一般都是空指针,即:指针里没有赋值~如果你对null进行操作就会产生空指针异常Objectobj=newObject();你要知道obj是一个Object指针变量,指向Object类的一个实例我们说obj是一个对象实质是它指向一个对象的首地址如果这个指针变量obj没有指向任何空间你调用它的方法和属性就会出错例如Objectobj=

    2026年4月15日
    4
  • 数学建模中的选址问题_数学建模停车场规划问题

    数学建模中的选址问题_数学建模停车场规划问题选址问题:是指在规划区域里选择一个或多个设施的位置,使得目标最优。四个要素:设施、规划区域、位置(距离)、目标设施:按照设施的空间维度划分,可以将选址问题分为:1.立体选址问题:设施的高度不能被忽略,如集装箱装箱问题。2.平面选址问题:设施的长、宽不能被忽略,如货运站的仓位布局问题。3.线选址问题:设施的宽度不能被忽略,如在仓库两边的传送带布局问题。4.点选址问题:设施可以…

    2025年11月27日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号