#include <stdio.h>
#include<stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
void integerToString(int &number, char *str)
{
int m = number;
char *strTemp = str;
while(m)
{
*strTemp++ = m%10 + '0';
m = m/10;
}
*strTemp = '\0';
char *strStart = str, *strEnd = (strTemp-1);
while(strStart < strEnd)
{
char temp = *strStart;
*strStart = *strEnd;
*strEnd = temp;
strStart++;
strEnd--;
}
}
void main()
{
int number = 234567;
char *strNumber = NULL;
strNumber = new char[50];
// printf("please enter a number: ");
// scanf("%d",&number);
integerToString(number,strNumber);
//以字符串输出,注意是地址
//printf("%s",strNumber);
//下面这种是按内容输出
/*
int len = strlen(strNumber);
for(int i =0;i<len;i++)
printf("%c",*(strNumber+i));
printf("\n");
//注意使用删除数组方式
delete []strNumber;
*/
//下面是按地址递增输出
int len = strlen(strNumber);
char *p = strNumber;
for(int i =0;i<len;i++)
//我认为:如果不用*p地址,strNumber指到len位置,最后释放空间时,len那一段没有释放,就出错。
printf("%c",*p++); //优先组指针符和自增同一个优先级,运算是从左往右的,所以,先取指针再地址增加。
printf("\n");
delete []strNumber;
}