如何将C语言长整型转换成字符串例如:讲long a=11111111;转换成字符串数组。

如题所述

//楼上的 用%d 是有问题的 如果用楼上的方法 应该用%ld 否则会溢出
11111111
Press any key to continue

#include <stdio.h>
#include <stdlib.h> //不要忘了这个头文件 否则就不能用ltoa这个函数了
main()
{
long a=11111111;
char str[10]="\0";
ltoa(a,str,10); //存入字符串数组str 中 第三个参数10 是说明是10进制
printf("%s\n",str);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-24
很简单的
#include<stdio.h>
int main()
{
char temp[20]={0};
long a=11111111;
sprintf(temp,"%d",a); //转换成功,字符串保存在了temp中
return 0;
}
第2个回答  2012-04-08
#include <stdio.h>
#include <malloc.h>
//栈的相关定义
/////////////////////////////////////////////////////////////////////////////
typedef struct Node
{
char a;
Node *next;
} *pNode;
typedef struct MStack
{
pNode pBase;
pNode pTop;
int size;
} MStack;

MStack one;
void InitStack(MStack &aStack)
{
aStack.pBase=aStack.pTop=NULL;
aStack.size=0;
}
void PushStack(MStack &aStack,char ch)
{
if(aStack.size==0)
{
aStack.pBase=aStack.pTop=(pNode)malloc(sizeof(Node));
aStack.pBase->a=ch;
aStack.pBase->next=NULL;
aStack.size++;
}
else
{
pNode pt=(pNode)malloc(sizeof(Node));
pt->a=ch;
pt->next=aStack.pTop;
aStack.pTop=pt;
aStack.size++;
}
}

void ClearStack(MStack &aStack)
{
while(aStack.pTop!=NULL)
{
pNode pTemp=aStack.pTop;
aStack.pTop=aStack.pTop->next;
pTemp->next=NULL;
free(pTemp);
}
InitStack(aStack);
}
/////////////////////////////////////////////////////////////////////////////
int main()
{
MStack mystack;
InitStack(mystack);
int a=123456;
while(a)
{
char s;
s=a%10+48;
PushStack(mystack,s);
a/=10;
}
pNode temp=mystack.pTop;
while(temp!=NULL)
{
printf("%c",temp->a);
temp=temp->next;
}

char str[20];
int i=0;
temp=mystack.pTop;
while(temp!=NULL)
{
str[i]=temp->a;
i++;
temp=temp->next;
}
str[i] = '\0';

printf("after change:%s",str);

ClearStack(mystack);
return 0;
}
第3个回答  2012-04-06
别用itoa,不是标准c里面的,用sprintf吧,占位符用%l,%d是整型。

#include<stdio.h>
int main()
{
char temp[20];
long l=11111111;
sprintf(temp,"%l",a);
return 0;
}
第4个回答  2012-04-07
wa