天天看点

关于atoi函数使用的一道题,学习自网络牛人。我用c++ vc6.0 做的, atoi 应该是ascii to int 吧 

刚刚开始刷九度online judge的题目:不会了,上网跟别人学的

题目描述:

给定两个整数A和B,其表示形式是:从个位开始,每三位数用逗号","隔开。

现在请计算A+B的结果,并以正常形式输出。

输入:
输入包含多组数据数据,每组数据占一行,由两个整数A和B组成(-10^9 < A,B < 10^9)。
输出:
请计算A+B的结果,并以正常形式输出,每组数据占一行。
样例输入:
-234,567,890 123,456,789
1,234 2,345,678      
样例输出:
-111111101
2346912      

我用c++ vc6.0 做的, atoi 应该是ascii to int 吧 

#include<iostream.h>
#include<string>
using namespace std;


int main()
{
	char s1[14];//有取值范围,所以设置这么大
	char s2[14];
	char s3[14];
	char s4[14];
	
	while(1)
	{
		cin>>s1>>s2;
		int k1=0,k2=0;
		int l1,l2;
		l1=strlen(s1);
		l2=strlen(s2);
		for (int i=0;i<l1;i++)
		{
			if (s1[i]!=',')
			s3[k1++]=s1[i];
			s3[k1]='\0';
		}
//printf("%d\n",atoi(s3));    //做了一些测试,atoi 必须对应一串连续的数,如果数字之间有\0,转换之后返回0,所以设置了一个k1 k2
        for (int j=0;j<l2;j++)
		{
			if (s2[j]!=',')
			s4[k2++]=s2[j];
			s4[k2]='\0';
		}


		int add=atoi(s3)+atoi(s4);
		cout<<add<<endl;
	//	break;
	}
	return 0;
}