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

如题所述

例:输入’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就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-30

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

#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;
}

第2个回答  2017-08-18
#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()函数是我自己写的。望采纳,谢谢。

不懂可问

第3个回答  2016-05-06

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);
}


运行测试:

第4个回答  2017-06-29
实例:

#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);
}

相似回答