【C語言】為下面的函式原型編寫函式定義: int ascii_to_integer(char *str); 這個字串引數必須包含一個或者多個數字,函式應該把這些數字字元轉換為整數並返回這個整數。

doudouwa1234發表於2015-04-02
/*<p>為下面的函式原型編寫函式定義:</p><p>int ascii_to_integer(char *str);</p><p>這個字串引數必須包含一個或者多個數字,函式應該把這些數字字元轉換為整數並返回這個整數。</p><p><span style="font-family: Arial, Helvetica, sans-serif;">如果字串引數包含了任何非數字字元,函式就返回零。請不必擔心算數溢位。</span></p>提示:這個技巧很簡單:你每發現一個數字,把當前值乘以10,並把這個值和新的數字所代表的值相加。
*/
#include <stdio.h>
int ascii_to_integer(char *str)
{
	int sum=0;
	while(*str!='\0')
	{
		if((*str>='0')&&(*str<='9'))
		{
			sum=sum*10+((int )(*str)-48);
			str++;
		}
		else 
		return -1; 
	}
	return sum;
}
int main()
{
	char p[]="22345";
	printf("%d\n",ascii_to_integer(p));
	return 0;
}

相關文章