c语言编程,把命令行中的字符串(由数字字符组成)转换为整数并累加输出

输入输出示例:test1234sum=46... 输入输出示例:
test 12 34
sum=46
展开
 我来答
依稀红颜落
推荐于2016-04-02 · TA获得超过203个赞
知道小有建树答主
回答量:146
采纳率:0%
帮助的人:129万
展开全部
要从命令行接受数据就在main后面的括号写上参数(int a等)。置于说要把字符串的数字转化求和。首先,判断是不是数字,a[i]>=0x30&a[i]<0x40就是数字了。因为是存的ascii码,所以就用ascii码判断就是。每个字符串的每个元素都判断,有一个不是数字就略过或者剔除该元素就随你了。其次,求和。比如,已经判断完毕a[3]字符串为数字,且全部元素有效。那么,

while (a[i]!='\0')
{ i++; }这样可以判断出字符串内有几个有效数字。然后temp=i,保存这个有效个数,for (i;i>=0;i--) { sum+=(a[i]-0x30)*(pow(10,temp-i)); } 其中,a[1]-0x30把字符串转化成数字,pow(10,temp-i)计算的是10的(temp-i)次方,就是做的个十百位的转换。sum+=就是求和。这样就把a[]字符串转换为一个数字,然后就可以用于求和了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
君醉舍命为红颜
2014-05-24
知道答主
回答量:2
采纳率:0%
帮助的人:2665
展开全部
int StrToInt(char *buffer)
{
int num=0,i;
for(i=0;*(str+i)!='\0',i++)
{
num=num*10+(*(str+i))-48;
}

return num;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9bea863
2014-05-24 · 超过20用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:39万
展开全部
说清楚一些,几个数字,前面都有test吗?还是里面有数字和其他字符串的混合
追问
这个题的意思貌似是要用指针作为main函数的形参,就是这种题搞不清楚
追答
#include "stdio.h"
#include "string.h"
#define MAX 10
long long change(char *a){
int i,len = 0;
long long result = 0;
len = strlen(a);
for(i = 0; i < len; i++){
result = result * 10 + a[i];
}
return result;
}
int main ()
{
char input1[MAX]={0},input2[MAX]={0} ;
long long result =0, tem = 0;
result = change(input1);
result = result + change(input2);
printf("%lld\n",result);
return 0;
}
不知道你这个怎么输入的
而且不知道你这个数据的范围是多少,就先这样写了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式