itoa、atoi

本文介绍了如何使用C语言实现整数到字符串的转换,并提供了完整的代码示例。同时,也展示了如何将字符串转换回整数的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <stdio.h>
#include <string.h>
char *itoa(int num, char *str, int index)
{
    int isNegative, len;
    char tmp;
    char *tail = str, *head = str;
    if ((isNegative = num) < 0)
    {
        num = -num;
    }
    do
    {
        *tail++ = num % index + '0';
        num = num / index;
    }while(num > 0);
    if (isNegative < 0)
    {
        *tail = '-';
        *(tail + 1) = '\0';
    }
    else
    {
        *tail = '\0';
        tail--;
    }
    
    len = strlen(str);
    for(int j = 0; j < len/2; j++)
    {
        tmp = *head;
        *head++ = *tail;
        *tail-- = tmp;
    }
    return str;
}
int main(int argc, char argv[])
{   
    int num;
    char str[100];
    printf("input a integer number:\n");
    scanf("%d", &num);
    printf("int=%d, str=%s\n", num, itoa(num, str, 10));
    return 0;
}


#include <stdio.h>  
#include <string.h>  
int atoi(char *str)  
{  
    int sign = 1, val = 0;
    char *s = str;
    if (*s == '-')  
    {  
        sign = -1; 
        s++;
    }  
    while(*s != '\0')
    {
        val =val*10 + (*s - '0');
        s++;
    }
    return val*sign;  
}  
int main(int argc, char argv[])  
{     
    int num;  
    char str[100];  
    printf("input a string:\n");  
    scanf("%s", str);  
    printf("str=%s, str=%d\n", str, atoi(str));  
    return 0;  
}  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值