编写一个程序,功能是将输入的字符串中得数字字符转换成数字,并输出其各个数字之和

 我来答
问明6E
高粉答主

2019-06-04 · 每个回答都超有意思的
知道答主
回答量:279
采纳率:100%
帮助的人:12.5万
展开全部

例:输入’3’,输出整型数值3。

代码:

#include<stdio.h>

intmain()

charchdigit;

intintdigit;

printf("Pleaseinputandigitalcharacter:");

scanf("%c",&chdigit);

intdigit=chdigit-48;//将数字字符变为数值数字

printf("intdigitis%d\n",intdigit);

return0;

扩展资料:

return表示把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数值的返回,返回时可附带一个返回值,由return后面的参数指定。

return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

中考试题库
2017-06-30 · TA获得超过381个赞
知道小有建树答主
回答量:310
采纳率:33%
帮助的人:147万
展开全部

我写了一段程序,可以处理正整数,不能处理负号和小数点

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

int main()
{
    char     mystring[20];
    int     number[20];
    int     i,j,k,x,sum;
    
    memset(mystring,0,sizeof(char)*20);
    memset(number,0,sizeof(int)*20);
    
    
    fflush(stdin);
    fgets(mystring,20,stdin);
    
    for(i=0,j=0;i<20;i++)
    {
        if(isdigit(mystring[i]))
        {
            number[j]=mystring[i]-0x30;
            j++;
        }
    }
    printf("字符串中共有%d个数字字符。\n",j);
    for(i=0,sum=0;i<j;i++)
    {
        printf("%d\t",number[i]);
        sum=sum+number[i];
    }
    
    x=0;
    k=1;
    
    while(j>0)
    {
        x=x+number[j-1]*k;
        k=k*10;
        j--;
    }
    printf("\n该数字为:%d\n",x);
    printf("各位数字之和为%d\n",sum);
    return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
额哈哈靠哈哈靠
2017-08-18
知道答主
回答量:21
采纳率:0%
帮助的人:4.8万
展开全部
#include<stdio.h>
#include<stdlib.h>
int _atoi(char[]);
int main()
{
char n[10];
int total;
gets(n);
total=_atoi(n);
printf("%d\n",total);
return 0;
}
int _atoi(char n[10])
{
int i,total=0;
for(i=0;isspace(n[i]);i++);
if(n[i]=='+'||n[i]=='-')
i++;
for( ;isdigit(n[i]);i++)
total=total+(n[i]-'0');
return total;
}

结果输出如下:

部分代码来自: http://www.cnblogs.com/bluestorm/p/3168719.html

其中有些修改,atoi(), isspace(), isdigit()都是c语言中已有的函数(在标准库文件stdlib.h中),而_atoi()函数是我自己写的。望采纳,谢谢。

不懂可问

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
老冯文库
2016-05-06 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8733

向TA提问 私信TA
展开全部

C语言程序:

#include <stdio.h>
#include <string.h>

#define MAX 1000


void main()
{
char arr[MAX];
int sum = 0;
int i, start, end;

int num = 0;

printf("请输入字符串:");
gets(arr);

printf("其中数字:");
for(i=0; i<strlen(arr); i++)
{
if(arr[i] < '0' || arr[i] > '9')
{
if(num != 0)
{
sum += num;
printf("%d  ", num);
}
num = 0;
continue;
}
num = 10 * num + (arr[i] - '0');
}
if(arr[i-1] >= '0' && arr[i-1] <= '9')
{
sum += num;
printf("%d  ", num);
}
printf("\n数字之和:%d\n", sum);
}


运行测试:

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
户哲茂5B
2017-06-29 · TA获得超过817个赞
知道小有建树答主
回答量:781
采纳率:59%
帮助的人:131万
展开全部
实例:
#include <stdio.h>
void main()
{
char s[50];
int n = 0,i=0;
gets(s);
while(1)
{
if(s[i]==0) break;
if((s[i]>='0')&&(s[i]<='9'))
{
n = n + (s[i]-'0');
}
i++;
}
printf("和=%d\r\n",n);
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式