[C语言]带有逗号的整数输入(繁琐版本,后续有简洁版本)

带有逗号的整数输入

CountNum:将输入的带逗号的字符数组arr的第k项逗号(数组下标)向左取count个数,并依据位数乘以10的次方

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int CountNum(char *arr,int k,int count)//arr为字符数组,k为逗号下标,
{                                      //count为此数字个数
    int result=0;                      //result记录结果数值
    int i=0;                           //i为计数器使所取数组中的数字左移
    if(count==0)                       //count为左移位数
        result=-1;
	while(count>0)
    {
        float ten=pow(10,i);          //依据位数乘以10的次方
        result+=(arr[k-1-i]-48)*ten;  //减48为使用ASCII将字符数转化为整数
        i++;
        count--;
    }
    return result;
}
 
void ConverToNum(char *arr, int length, int *num)//把输入的字符串中的数字提取
                                                //出来,放在num数组中length是                                                                           
{                                               //arr中的字符个数 
    int n=0;
    int k=0;      
    int count_temp=0;                           //count为逗号间数字个数
    while(k<=length)
    {
        //如果字符是逗号或者结尾,就处理两个逗号之间的字符,转换成数字 
        if(arr[k]==','||arr[k]=='\0')
        {
            num[n]=CountNum(arr,k,count_temp);
            n++;
            count_temp=0;
        }
        else
        {
            count_temp++;
        }

        k++;
    }
    
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值