您的位置:首页 > 其它

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

2011-09-11 15:00 323 查看
不使用库函数将整数转换为字符串
// 字符串处理函数.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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐