现在的位置: 首页 > 综合 > 正文

strToInt和intToStr的自我定义

2013年07月22日 ⁄ 综合 ⁄ 共 766字 ⁄ 字号 评论关闭
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
using namespace std;


char* IntToStr(int& Number, char*& str)
{
	char ch, *left, *right;	
	left = right = str;
	//求绝对值
	unsigned int value = 0;
	if(Number < 0)
	{
        value = - Number;
        *str = '-';
		left++; right++;
	}else{
		value = (unsigned int)Number;
	}
	//转换成字符串
	while(value)
	{
		*right = value % 10 + '0';
		value = value/10;
		right++;
	}
	*right = '\0';
	
	//倒转
	right--;
	while(right>left)
	{
		ch = *left;
		*left++ = *right;
		*right-- = ch;
	}
	return str;
}




int strToInt(char*& str)
{
	int i =0;
	int num = 0;
	int len = strlen(str);
	if (*str == '-')
	{
		i++;
	}
	while(i<len)
	{
		num = num*10 +(str[i] - '0');
		i++;
	}


	if (*str == '-')
	{
		return -num;
	}else{
		return num;
	}
	
}


int main(int argc, char* argv[])
{
	char *str = (char *)malloc(12*sizeof(char));
	memset(str, 0, 12*sizeof(char));
	int i = -1234;
	char* s = IntToStr(i,str);
	puts(s);
	free(s);
	s = "-4321";
	int num = strToInt(s);
	printf("%d\n",num);
}

抱歉!评论已关闭.