zoukankan      html  css  js  c++  java
  • 字符串中数字求和

    给定一个字符串,计算字符串中数值的个数并求和。其中还包含了负号-,若紧跟负号的是一个数值,则表示这是一个负数,若后面跟着的不是数字,则不表示什么 
    输入:一个字符串 输出:数值个数 数值和 例子 
    输入:312ab-2-- -9--a

    输出:3 301

    #include<stdio.h>
    #include <stdlib.h>
    #include<math.h>
    #include<string.h>
    int strToint(char* str)
    {
        int sign,sum,k,i,len,num;
        sign = 1;
        sum = i = 0;
        len = strlen(str);
        if(str[i]=='-')
        {
            sign = -sign;
            i++;
        }
        if(str[i]=='+')
        {
            i++;
        }
        num = 0;
        for(;i<len;i++)
        {
            //sum += sum*int(pow(10,num))+(str[i]-'0');
            sum = sum*10+(str[i]-'0');
            //num++;
        }
           
        return sum*sign;
    }
    int main()
    {
        int i,len,j;
        char str[1000001],tep[1000001],c;
        double b = 0.9999;
        int sum = 0;
        gets(str);
        len = strlen(str);
        //i = atoi(str);
        
    //b = atof(str);
        
    //printf("%lf ",b);
        
    //sprintf(str,"%.3lf hello",b);
        
    //puts(str);
        j =0;
        for(i=0;i<len;i++)
        {
            c = str[i];
            if(str[i]=='-')
            {
                if(j>0)
                {
                    sum+=strToint(tep);//atoi(tep);
                    memset(tep, 0sizeof(tep));
                }
                j=0;
                if(str[i+1]>='0'&&str[i+1]<='9')
                {
                    tep[0]='-';
                    j++;    
                }
               
            }
            else
            {
                if(str[i]>='0'&&str[i]<='9')
                {
                    tep[j] = str[i];
                    j++;
                    //if(i==len-1)
                 }
                 else
                 {
                     tep[j]='';
                    if(j>0)
                    {
                        sum+=strToint(tep);//atoi(tep);
                        memset(tep, 0sizeof(tep));
                        j=0;
                     }
                  }
            }
            
        }
        if(j>0)
        {
          sum+=strToint(tep);    
        }
        printf("%d ",sum);
        return 0;
        //312df-2ff--9

    } 

  • 相关阅读:
    FluentValidation 验证框架笔记1
    AutoMapper 笔记1
    MediatR框架笔记1
    vscode调试python时提示无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称的解决方法
    Selenium使用自带浏览器自动化
    Selenium启动Chrome插件(Chrome Extensions)
    Gitee,Github 图片转直链
    CentOS 7.3 修改root密码 passwd: Authentication token manipulation error
    阿里云服务器 被入侵植入dhpcd导致cpu飙升100%问题
    Github 切换分支
  • 原文地址:https://www.cnblogs.com/lanshy/p/5307545.html
Copyright © 2011-2022 走看看