社区
C语言
帖子详情
如何用c语言把整形转换成字符型
liushuan
2004-08-14 09:10:07
用符合ANSI c标准形式的代码,
下面是我的题目:是用c语言编写的,不用c++,
char *int_to_string(int number,char *strnum
{
}
要求是:定义一个整形(int)指针,转换成一个字符串型指针,输出的时候也必须是字符型。但不能用sprintf函数简单输出。
...全文
5892
15
打赏
收藏
如何用c语言把整形转换成字符型
用符合ANSI c标准形式的代码, 下面是我的题目:是用c语言编写的,不用c++, char *int_to_string(int number,char *strnum { } 要求是:定义一个整形(int)指针,转换成一个字符串型指针,输出的时候也必须是字符型。但不能用sprintf函数简单输出。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LionEagle
2004-09-02
打赏
举报
回复
to icelover(C++):
用while的问题就在于number=0时,第一个while循环被跳过,第二个for循环也被跳过,因此输出的字符串为"\0",而实际应该输出的是"0\0"
liushuaiboy
2004-08-21
打赏
举报
回复
mark
huangyang88
2004-08-18
打赏
举报
回复
#include <stdio.h>
char* inttostring(int num, char* nums)
{
int i, flag=0, len=0;
if( num <0)
{
flag=1;
num = -num;
}
while(num/10)
{
nums[len++] = '0' + num%10;
num=num/10;
}
nums[len++] = '0' + num ;
nums[len] = '\0';
for(i=0; i<len/2; i++)
{
char ch = nums[i];
nums[i] = nums[len-i-1];
nums[len-i-1] = ch;
}
if(flag)
{
for(i=0; i<=len; i++)
{
nums[len-i] = nums[len-i-1];
}
nums[0] ='-';
nums[len+1]=0;
}
return nums;
}
int main()
{
int x= 0;
char y[100];
inttostring(x, y);
printf("%s\n", y);
return 0;
}
icelover
2004-08-17
打赏
举报
回复
#include <stdio.h>
#define INTLEN 8 /*容纳整数转换成的字符串的数组的最大长度*/
/*得到字符串长度*/
int strlen(char s[])
{
int i = 0;
while(s[i] != '\0')
i++;
return i;
}
/*逆转一个字符串*/
void reverse(char s[])
{
int i,j;
char c;
for(i=0,j=strlen(s)-1;i<j;i++,j--){
c=s[i];
s[i]=s[j];
s[j]=c;
}
}
char *int_to_string(int n,char s[])
{
int i,sign; /*sign判断是不是小于0*/
if((sign = n) <= 0)
n = -n;
i = 0;
/*使用do-while循环后,n为0的情况就不用单独处理*/
do{
s[i++] = n % 10 + '0';
}while((n/=10)>0);
if(sign < 0)
s[i++] = '-';
s[i] = '\0';
reverse(s);
return s;
}
int main(void)
{
int n;
char s[INTLEN];
printf("input a integer: ");
scanf("%d",&n);
int_to_string(n,s);
printf("string: %s\n",s);
return 0;
}
ra3
2004-08-14
打赏
举报
回复
用 itoa 函数很容易。
例如:
int i = 1234;
printf("%s ", itoa(i));
nowaketi
2004-08-14
打赏
举报
回复
单个的数字和字符相差#0030,也就是48
icelover(C++) 的程序正解,支持
micty
2004-08-14
打赏
举报
回复
#include <stdio.h>
char *int_to_string(int number,char *strnum)
{
int j=0,i=0,n=0;
while(number>0)
{
*(strnum+j)=number%10+48;
j++;
number=number/10;
n++;
}
char temp;
/*将其逆转*/
for(i=0;i<n/2;i++)
{
temp=*(strnum+j+i-n);
*(strnum+j+i-n)=*(strnum+j-i-1);
*(strnum+j-i-1)=temp;
}
strnum[n]='\0';
return strnum;
}
void main()
{
int n=12345;
char num[10];
int_to_string(n,num);
printf("%s\n",num);
}
支持~
ziffle
2004-08-14
打赏
举报
回复
(type)cast
type是你要转换成的类型,cast是你的表达式,或是变量.
sharkhuang
2004-08-14
打赏
举报
回复
itoa
LionEagle
2004-08-14
打赏
举报
回复
to icelover(C++):
你的程序至少有如下的一个bug:不可以用while循环,而应该用do{}while循环,你没有考虑到number为0的情况
wwwooowww
2004-08-14
打赏
举报
回复
char *int_to_string(int number,char *strnum)
{
int i = 0,j;
int pn = &number;
int left = *pn;
char tempCh;
strnum[0] = (char)('0' + left%10);
i ++;
while ((left = left/10))
{
strnum[i] = (char)('0' + left%10);
i ++;
}
strnum[i] = 0;//字符串结束标志
for (j=0; j<(i/2); j++)
{//调换,原来是逆序
tempCh = strnum[j];
strnum[j] = strnum[i-j];
strnum[i-j] = tempCh;
}
printf("%s\n",strnum);
return strnum;
}
icelover
2004-08-14
打赏
举报
回复
#include <stdio.h>
char *int_to_string(int number,char *strnum)
{
int j=0,i=0,n=0;
while(number>0)
{
*(strnum+j)=number%10+48;
j++;
number=number/10;
n++;
}
char temp;
/*将其逆转*/
for(i=0;i<n/2;i++)
{
temp=*(strnum+j+i-n);
*(strnum+j+i-n)=*(strnum+j-i-1);
*(strnum+j-i-1)=temp;
}
strnum[n]='\0';
return strnum;
}
void main()
{
int n=12345;
char num[10];
int_to_string(n,num);
printf("%s\n",num);
}
FlyindanceDDr
2004-08-14
打赏
举报
回复
哈哈
wwwooowww
2004-08-14
打赏
举报
回复
char *int_to_string(int number,char *strnum
{
return *itoa(number,strnum,10);
}
icelover
2004-08-14
打赏
举报
回复
to LionEagle(LionEagle)
对,谢谢你指出,我确实没有考虑number<=0的情况,对于小于0的情况,只需要加上一个负号就可以了,至于等于0的情况,就更简单了。
至于用do-while,我觉得用while应该可以阿,你能告诉我问题在什么地方吗?
谢谢
C语言
整
型
数据转为
字符
型
数据
这是将整
型
数
转换
为
字符
型
,自己创作。代码可实现将整数
转换
为
字符
型
,可以帮助在开发单片机等显示中。
整形
数组与
字符
数组相互
转换
注意:源程序是为qt写的,不过基本上都用的是
c语言
,下载之后稍作修改就可以在vc++上运行。将int数组转
成
uchar数组保存到数据库,然后再取出来将uchar数组还原
成
int数组。
C语言
--视频精讲
C语言
作为被长期使用的编程语言,可以被运用到各种操作系统,游戏,开发中。本课程作为互联网上首家使用C99录制的
C语言
教程,展现了全面、专业。标准的
C语言
教程。可以帮助学员从基础开始一点点的深刻理解
C语言
。
C语言
中交换int
型
变量的值及
转换
为
字符
数组的方法
不使用其他变量交换两个整
型
的值: #include
void main(){ int a = 3; int b = 4; a = a ^ b;//使用异或交换 b = b ^ a; a = a ^ b; printf(%d, %d\n, a, b); a = a - b;//使用加减交换 b = a + b; a = b - a; printf(%d, %d\n, a, b); a ^= b ^= a ^= b; printf(%d, %d\n, a, b); }
整形
和
字符
数组
型
转换
:
OCI-V7操作封装
适用于任何平台,可以处理SQL、PL/SQL语句,在DML语句中可以处理数据类
型
为
整形
、
字符
型
、LONG、LONG BINARY、CLOB数据;在SELECT语句中可以出任何数据类
型
,都将
转换
成
C语言
的
字符
串数据,最大为64KB。其他数据方面的注意事项参见其中的详细说明。 其中所使用的ADT数据处理来自自己编写的另一个库,参见上传的ADT数据结构操作代码。 使用V9的OCI函数封装正在编写。
C语言
69,382
社区成员
243,074
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章