1、c++编写将一个整数n转换成字符串的函数。在主函数中调用该函数并输出结果,从键盘输入n的值。
如输入整数123输出为字符型“123”。#include<iostream.h>voidstr(char[],intn);voidmain(){intn;chara[80...
如输入整数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<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
怎么修改??????????????? 展开
3个回答
展开全部
#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; //返回数组的首地址
}
#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; //返回数组的首地址
}
展开全部
#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");
}
#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");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将 48 搞成 ‘0’ 就可以了
追问
更改之后无变化,结果一样。怎么办?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |