C語言字符串轉int整數的實現源代碼

以下爲本人在工程中經常用的幾個字符串轉換函數

#include 
#include 


/* str to hex */
int ascii_atox(const char *s)
{
	char xdigs[] = "0123456789ABCDEF";
	
	long sum;
	
	/* 跳過空格 */
	while(isspace(*s))
	  ++s;
	
	for(sum=0L;isxdigit(*s);++s)
	{
		int digit = strchr(xdigs,toupper(*s)) - xdigs;
		sum = sum*16L + digit;
	}
	
	return sum;
}

/* str to dec */
int ascii_atodec(const char *s)
{
	char digs[]="0123456789";
	
	long sum;
	
	/* 跳過空格 */
	while(isspace(*s))
	  ++s;
	
	for(sum=0L;isdigit(*s);++s)
	{
		int digit = strchr(digs,*s) - digs;
		sum = sum*10L + digit;
	}
	
	return sum;
}


/* str to int,
   s - poiter to string
   size -length of string
   base -only 10 or 16
   */
int ascii_atoi(const char *s,size_t size,int base)
{
	char digs[] = "0123456789ABCDEF";
	long sum = 0L;
	
	if((base != 10) || (base != 16))
		return sum=0;
	
	while(isspace(*s))
	  ++s;
	
	for(int i=0;i


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章