不使用库函数将整数转换为字符串
// 字符串处理函数.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; }