天天看點

關于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;
}