1、c++编写将一个整数n转换成字符串的函数。在主函数中调用该函数并输出结果,从键盘输入n的值。

如输入整数123输出为字符型“123”。
#include<iostream.h>
void str(char[],int n);
void main()
{
int n;
char a[80];
cout<<"请输入一个任意整数n:";
cin>>n;
str(a,n);
cout<<"转换后的字符串为:"<<str<<endl;
}
void str(char ch[],int n)
{
int i=0,j=0;
char a;
do{
ch[i++]=n%10+48;
}while(n/=10);
ch[i]='\0';

for(i--;i>j;i--,j++)
{
a=ch[i];
ch[i]=ch[j];
ch[j]=a;
}
}
运行后为:
请输入一个任意整数n:123
转换后的字符串为:0x0040101E
Press any key to continue
怎么修改???????????????

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

void tran(char ch[],int n)
{
int i=0,j=0;
char temp;
//对n分别取最低位,储存在字符数组中
do{
ch[i++]=n%10+48; //0的ASCII码为48,所以要数值加48;同时,i自增
}while(n/=10); //当(n=n/10)!=0时,循环继续

ch[i]='\0';//循环结束,加字符串结束符代替
for(i--;i>j;i--,j++) {temp=ch[i];ch[i]=ch[j];ch[j]=temp;}//此前ch[]低位在前,今将其倒置

}

void main()
{
int n;
char str[20];

cout<<"请输入一个整数:";
cin>>n;
tran(str,n);
cout<<str<<endl;
}

你输出的是函数的地址,是个十六进制数。
改了一下,你试试看:
#include<iostream.h>
char *str(char[],int n);
void main()
{
int n;
char a[80];
cout<<"请输入一个任意整数n:";
cin>>n;

cout<<"转换后的字符串为:"<<str(a,n)<<endl;
}
char *str(char ch[],int n) //返回指针
{
int i=0,j=0;
char a;
do{
ch[i++]=n%10+48;
}while(n/=10);
ch[i]='\0';

for(i--;i>j;i--,j++)
{
a=ch[i];
ch[i]=ch[j];
ch[j]=a;
}
return ch; //返回数组的首地址
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-27
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
int N;
string st;
int main()
{
scanf("%d",&N);
st="";
while (N)
{
char ch=N%10+'0';
st=ch+st;
N/=10;
}
cout<<st<<endl;
system("pause");
}
第2个回答  2011-03-27
将 48 搞成 ‘0’ 就可以了追问

更改之后无变化,结果一样。怎么办?

用递归法将一个整数n 转换成字符串,函数原型如下:int string(int n...
} main(){ long n;scanf("%ld",&n);fun(n);}

...设计一个itoa(int n)函数可以将整数转化为字符串吗?
1)字符串类型转化为整数型(Integer),还是字符串类型(String)转化为Double类型,这在java里面有非常好的内部函数,很easy的事情;(2)但是在c里面没有Integer Double等包装类,由char[]数组转化为整数型就变得不那么简单了,atoi() itoa()在widows下面有,但是网上说linux 下好像没有 itoa() 函...

在C++中如何编出一个函数将整型数转化为字符串形式输出?
void IntToStr( int num ,char str[] ){ int i = 0, j = 0;int isNeg = 0;\/*整数位数最大为12位,包括负号*\/ char temp[MAX_DIGITS_INT + 2];if( num<0 ){ num* = -1;isNeg = 1;} do { temp[i++] = (num%10) + '0';num\/ = 10;}while(num);if( isNeg )t...

C语言程序答案:将一个整数n转成字符串输出。???不用递归法,还能怎么写...
将输入的整数保存在一个int整型变量里,再使用itoa函数即可 功 能: 把一整数转换为字符串 用 法: char *itoa(int value, char *string, int radix);详细解释:itoa是英文integer to string a(将整形数转化为一个字符串,并将值保存在a中)的缩写.其中value为要转化的整数, radix是基数的意思,即...

用C++编写一个判别素数的函数,在主函数中输入一个整数,通过参数调用...
include <stdio.h> int fun_m(int x);int main(){ int m;while(1){ printf("请输入数字(输入0退出):");scanf("%d",&m);if (m == 0){ return 0;} if (fun_m(m)){ printf("%d是素数!",m);} else { printf("%d不是素数!",m);} } return 0;} int fun_m(int x)...

C++中如何将整型变量转换为字符串
有如下两种常用方法。一、可以通过调用C库函数itoa实现。1 原型。char*itoa(int value,char*string,int radix);2 头文件。stdlib.h 3 功能。将value的值,转换为字符串,并存到string中,如果转化后的字符串长度超过radix,那么只存radix位。4 样例。int i=1234;char buf[10];itoa(i, buf, 10)...

编写一个主函数,计算并输出n 的值,其中n值由键盘输入
include<stdio.h> voidmain(){ intn;scanf("%d", &n);printf("%d\n",n);}

c 语言:写一个求整数阶乘的函数,在主函数中输入一个整数,调用该函数...
inlcude <stdio.h> long fun1(int n){if(n==1) return 1;else return fun1(n-1)*n;} void main(){int n;printf("enter n:");scanf("%d",&n);printf("n!=%ld\\n",fun1(n));}

C++中,编写函数,输入一个整数,利用指针返回该数的绝对值。
if(a>0)*p=a;else *p=-a;return 0;} int main(){ int a, b;scanf("%d", &a);mabs(a, &b);printf("%d\\n", b);return 0;} C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的...

用c++编程 输入一个整数n,输出1!+2!+3!+……+n! 急急急急急!
先写出一个如下的函数:int fun(int n){ int s=1;for(int i=1;i<=n;i++)s*=i;return s;} 然后在主函数中调用反复调用它 int main(){ int n;while(cin>>n){ int sum=0;for(int i=1;i<=n;i++){ sum+=fun(i);} cout<<sum<<endl;} } ...

相似回答