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

2024-12-02 07:32:52
推荐回答(5个)
回答1:

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

回答2:

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

#include 
#include 

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

回答3:

#include
#include
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()函数是我自己写的。望采纳,谢谢。

不懂可问

回答4:

C语言程序:

#include 
#include 

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


运行测试:

回答5:

实例:
#include 
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);
}