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

不使用库函数将整数转换为字符串或将字符串转换为整数

2013年07月25日 ⁄ 综合 ⁄ 共 1486字 ⁄ 字号 评论关闭
不使用库函数将整数转换为字符串
// 字符串处理函数.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;
//不使用库函数将整数转换为字符串
void int2str(int value,char *string){
	if (string==NULL)//如果string为NULL,直接返回
	{
		return;
	}
	int i=0,len=0;
	int absolute=value>0?value:-value; //取value的绝对值
	char str[20]="";
	while (absolute) {//把absolute的每一位上的数存入str

		str[i++]=absolute%10+'0'; 
		absolute/=10; 
	}

	len=i;

	if (value<0)//如果是负数,需要多出来一位存储负号‘-'
	{
		len+=1;
		for (int j=i-1;j>=0;j--)
			string[len-1-j]=str[j];
		string[0]='-';
	}
	else{ //如果是整数,直接拷贝
		for (int j=i-1;j>=0;j--)
			string[len-j-1]=str[j];
	}
	string[len]='\0';//末尾添加结束符
}


int _tmain(int argc, _TCHAR* argv[])
{
	int nNum;
	char string[20];
	cout<<"Please input an integer:";
	cin>>nNum;
	cout<<"output:";
	int2str(nNum,string);
	cout<<string<<endl;
	system("pause");
	return 0;
}



 

 

 

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
不使用库函数将字符串转换为数字

 

 

// 字符串处理函数.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
using namespace std;

//不使用库函数将字符串转换为数字
int str2int(const char *str){
	int num=0,dig=1;
	if (str==NULL)
	{
		return -1;
	}
	while (*str==' '){ //滤掉开头的空格
		str++;
	}
	if (*str=='+')
	{
		str++;
	}
	if (*str=='-')//如果开头有"-"使dig=-1
	{
		str++;
		dig*=-1;
	}
	while (*str!='\0')
	{
		num=num*10+(*str++-'0');
		if (*str<'0'||*str>'9')//如果遇到非数字则跳出循环
		{
			break;
		}
	}
	num*=dig;
	return num;
}
int _tmain(int argc, _TCHAR* argv[])
{
	int num=0;
	char str[10]="";
	cin.getline(str,10);
	num=str2int(str);
	cout<<num<<"\n";
	system("pause");
	return 0;
}

 

抱歉!评论已关闭.