C语言编程完成将一个任意正整数转换成相应的字符串.用函数

如题所述

#include<stdio.h>
#define LEN 30
int main(){
    void toString(__int64 x,char *p);
    char str[LEN];
    __int64 x;

    printf("请输入要转换的整数: ");
    scanf("%I64d",&x);
    toString(x,str);
    printf("转换成字符串: %s\n",str);
    return 0;
}
void toString(__int64 x,char *p){
    int i,t,r,l;
    //初始化
    for(i=0;i<LEN;i++) p[i]='\0';
    //转换
    t=1;
    while(t<=x) t*=10;
    t/=10;
    l=0;//长度
    while(x>0){
        r=x/t;
        p[l++]=r+48;
        x%=t;
        t/=10;
    }
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-07-02
#include <stdio.h>

char* itoa(char* dest, int num) {
int counts = 0, i, j;
char temp;
while (num > 0) {
dest[counts++] = num % 10 + '0';
num /= 10;
}
dest[counts] = '\0';
for (i = 0, j = counts - 1; i < j; i++, j--) {
temp = dest[i];
dest[i] = dest[j];
dest[j] = temp;
}
return dest;
}

int main() {
char buf[20];
int num;
while (scanf("%d", &num) == 1 && num > 0) {
printf("%s\n", itoa(buf, num));
}
return 0;
}

第2个回答  2014-07-02
#include<stdio.h>
#include <string.h>
void Convert(char ch[10],int a){
char temp[10];
int i=0,j;
memset(temp,'\0',10*sizeof(char));
while(a>0){
temp[i++]=a%10+'0';
a/=10;
}
for(i-=1,j=0;i>=0;i--,j++){
ch[j]=temp[i];
}
}
void main()
{
int a;
char ch[10];
memset(ch,'\0',10*sizeof(char));
scanf("%d",&a);
Convert(ch,a);
printf("%s\n",ch);
}

第3个回答  2020-12-18

通过格式操作使任意类型的数据转换成一个字符串

本回答被网友采纳
相似回答