#include <stdio.h>
/*实现long数据转为字符串
*
*1.long数据的正、负问题考虑,判断符号; 范围为:-2^31-1 (-2147483647) ~~~~ 2^31 - 1 (2147483647)
*
*2.去每一位数转字符 从最后一位开始取,取模10,ASCII: ? + ‘0’,从后往前取保存在一个字符数组中char s【】
* char S【20】 S[0]='+'/'-'
*3.再吧字符数组逆序,最后位与第1位交换,倒数第2位与第2位交换~循环~
*/
int main(void)
{
long n;
char s[20];
int i = 0 , j;
char c;
printf("input data: \n");
scanf("%ld",&n);
/*判断正负*/
if (n > 0)
{
s[i++] = '+';
}
else
{
s[i++] = '-';
n = -n;
}
/*从后往前取数*/
while(n)
{
s[i++] = n%10 + '0';
n = n/10;
}
s[i] = '\0'; //结束字符串
/*数组逆序*/
for(j=1,i=i-1; j<=i; j++,i--) //第1个字符为符号,从第2个字符开始交换
{
c = s[j];
s[j] = s[i];
s[i] = c;
}
printf("the result is %s \n",s);
return 0;
}
练习题
最新推荐文章于 2024-08-23 17:31:58 发布