【C语言】实现将字符串型整数数值转换成对应的整数型数值

问题:用C语言编写一个函数,实现将字符串型"±1234"转换成整数型±1234

其中,先判断字符串中的符号,负数时将flag置为-1,正数时省略符号与不省略符号都不影响flag为1的值,核心语句n = n * 10 + *p - '0';则将字符串中的字符数值从后往前依次拿出来转换成相应的整数,最后返回n与flag的乘积

总代码:

#include <stdio.h>
#include <string.h>
long  fun(char* p)
{
    long n = 0;
    int flag = 1;
    if (*p == '-')
    {
        p++; flag = -1;
    }
    else if (*p == '+')
        p++;
    while (*p != '\0')
    {
        n = n * 10 + *p - '0';
        p++;
    }
    return n * flag;
}

void main()
{
    char s[6];
    long    n;
    printf("Enter a string:\n");
    gets(s);
    n = fun(s);
    printf("%ld\n", n);
}

运行结果:

负数时:

6b82ecb944604ce5a9e97657210c9eb6.jpg

 正数时:

00ec75dcb95b448b8c1c441484472310.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值