⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ep5_9.cpp

📁 这里有大量的c语言习题呢!真的是题海哦
💻 CPP
字号:
/*5.9	  使用递归和非递归的两种方法编写函数
char *itoa (int n,char *string);
	 将整数n转换为十进制表示的字符串。(在非递归方法中,可使用reverse()函数。)
*/
#include<iostream>
using namespace std;
char* reverse (char* s){
	char temp,* temp1=s,* temp2=s;
	while(*temp2) temp2++;
	temp2--;//指针移回串尾
	while(temp2-temp1>0){//注意此处,从串两头的指针同时向中间移动,重合或交错时停止
		temp=*temp1;
		*temp1=*temp2;
		*temp2=temp;
		temp1++;
		temp2--;
	}
	return s;
}
char *itoa (int n,char *string){
	char *temp=string;
	if(n<0){
		*temp++='-';
		n=-n;
	}
	do{//注意个位放在前了
		*temp++=n%10+48;
	}while(n=n/10);//显式的循环
	*temp='\0';
	if(*string=='-') temp=string+1;//有负号仅反转数字部分
	else temp=string;
	reverse(temp);//个位放到后面
	return string;
}
char *itoa1 (int n,char *string){
	if(n<0){
		*string++='-';
		n=-n;
	}
	if(n/10) string=itoa1(n/10,string);//隐式循环
	*string++=n%10+48;//第一次是数字最高位放串的最前面的字符(不含符号),注意指针移动在后
	*string='\0';
	return string;//注意返回的指针已后移一字符
}
char *itoa0 (int n,char *string){
	itoa1(n,string);
	return string;
}

int main(){
	int num;
	char st[20];
	cin>>num;
	cout<<"输出数字串:"<<itoa(num,st)<<endl;
	cin>>num;
	cout<<"输出数字串:"<<itoa0(num,st)<<endl;
	return 0;
}
/*递归算法难度大,对学生可不要求*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -