//正整数转换成字符串,不采用类的实现方式
#include <iostream>
#include <string>
using namespace std;
int main(){
int n,i=0,j,k;
cout<<"请输入一个正整数:"<<endl;
cin>>n;
char a[11],b[11];
while(n)
{
a[i]=char(n%10+48);
n=n/10;
i++;
}
a[i]='\0';//和容易忘记
cout<<"输入的正整数转换为char字符串为:"<<endl;
for (j=i-1,k=0;j>=0,k<i;j--,k++)
b[k]=a[j];//由于已经定义了a[10]、b[10]就只能单个赋值b[k]=a[j],不能采用strcpy(b,a);
b[k]='\0';
cout<<b<<endl;
string str(b,&b[i]);//也就是string str(&b[0],&b[i]);比较稳妥的一种方法
cout<<"输入的正整数转换为string字符串为:"<<endl;
cout<<str<<endl;
return 0;
}
//采用类的方法来实现
#include <iostream>
using namespace std;
class STR{
public:
STR(int x){n=x;}
void itoc();
void print(){
cout<<"string="<<a<<endl;
}
private:
int n;
char a[11];
};
int main(){
int num;
cout<<"请输入一个正整数:"<<endl;
cin>>num;
cout<<"num="<<num<<endl;
STR str(num);
str.itoc();
str.print();
return 0;
}
void STR::itoc(){
int i=0,j;
while(n)
{
a[i]=char(n%10+48);
n=n/10;
i++;
}
a[i]='\0';
for(j=0;j<=(i-1)/2;j++){
char c=a[j];
a[j]=a[i-1-j];
a[i-1-j]=c;
}
}