3个回答
展开全部
要从命令行接受数据就在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[]字符串转换为一个数字,然后就可以用于求和了
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[]字符串转换为一个数字,然后就可以用于求和了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int StrToInt(char *buffer)
{
int num=0,i;
for(i=0;*(str+i)!='\0',i++)
{
num=num*10+(*(str+i))-48;
}
return num;
}
{
int num=0,i;
for(i=0;*(str+i)!='\0',i++)
{
num=num*10+(*(str+i))-48;
}
return num;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
说清楚一些,几个数字,前面都有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;
}
不知道你这个怎么输入的
而且不知道你这个数据的范围是多少,就先这样写了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询