关闭

atoi 原来将字符串02002xzm100转换为int以后是2002

标签: atoi 字符 数字 空格 0
172人阅读 评论(0) 收藏 举报
分类:


将字符里的数字转换成int  遇见0或者字符就结束,look atoi的实现

#include <Windows.h>
int xzm_atoi( char* pstr )
{
	int ret = 0;
	int symbolSign = 1;

	/*
	* 判断指针是否为空 
	*/
	if(pstr == NULL)
	{
		OutputDebugString("Pointer is NULL\n");
		return 0;
	}

	/*
	* 跳过前面的空格字符 isspace返回值是如果无空格则返回NULL
	*/
	while(isspace(*pstr))
	{
		pstr++;
	}

	/*
	* 判断正负号 
	* 如果是正号,指针指向下一个字符 
	* 如果是符号,把符号标记为symbolSign置-1,然后再把指针指向下一个字符 
	*/
	if(*pstr == '-')
	{
		symbolSign = -1;
	}
	if(*pstr == '-' || *pstr == '+')
	{
		pstr++;
	}

	/*
	* 把数字字符串逐个转换成整数,并把最后转换好的整数赋给ret
	*/
	while(*pstr >= '0' && *pstr <= '9')
	{
		ret = ret * 10 + *pstr - '0';
		pstr++;
	}
	ret = symbolSign * ret;

	return ret;
}

测试如下,

#include <Windows.h>
void main()
{
	char strarrayA[] = "-100";
	char strarrayB[] = "0200202002xzm100";
	int  c = 0;

	c = xzm_atoi(strarrayA) + xzm_atoi(strarrayB);
}



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:117558次
    • 积分:3480
    • 等级:
    • 排名:第9908名
    • 原创:245篇
    • 转载:3篇
    • 译文:2篇
    • 评论:7条
    收藏
    http://my.csdn.net/my/favorite
    最新评论