如何实现字符串转换为整数然后将得到的整数转换为字符串

liubo1977 2005-10-24 08:20:05
有一字符串:"00099",将其转换为整数99,然将其加1为100,又将100转换为学符串"000100",请问在c中如何实现
...全文
390 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqpp 2005-10-25
  • 打赏
  • 举报
回复
直接做个字符串的加法不行吗?
megaboy 2005-10-25
  • 打赏
  • 举报
回复
嗯,是的,itoa这个函数是dos/windows下的,linux/unix没有这个函数,这个itoa你就手工自己写一个吧。
liubo1977 2005-10-25
  • 打赏
  • 举报
回复
各位老大,三楼说的 itoa, 不是标准的库函数,我用的是gcc,找不到这个函数,不知你们用的是什么编译器
megaboy 2005-10-25
  • 打赏
  • 举报
回复
另外提醒 megaboy(飞天御剑流之杀神一刀斩) atoi()此函数把字符串转化成整数时会自动去掉前面的3个0,而不用自己做判断。
----------------------------------------
这种情况直接先用atoi不好的,因为不知道字符串前部有多少个0,先用atoi的话,又得先记住前部0的个数,有多余的步骤。先找到不为0的位置,然后再转换,就OK了。
hbvanguard 2005-10-25
  • 打赏
  • 举报
回复
搂主能不能把问题说清楚一些,如果要实现你说的通用的转换功能,还是3楼的合适些,如果只是针对此字符串的话,我想我的比较简单些。
hbvanguard 2005-10-25
  • 打赏
  • 举报
回复
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void main(void)
{
char tmp[10]={0};
char des[20]={0};
char *src="00099";
int iReturn=0;
iReturn=atoi(src);
iReturn+=1;
itoa(iReturn,tmp,10);
strcpy(des,"000");
strcat(des,tmp);
printf("%s",des);
return;
}
vc6下运行结果:000100
另外提醒 megaboy(飞天御剑流之杀神一刀斩) atoi()此函数把字符串转化成整数时会自动去掉前面的3个0,而不用自己做判断。
ningzhiyu 2005-10-25
  • 打赏
  • 举报
回复
楼主,三楼的已经够简单了……
liubo1977 2005-10-25
  • 打赏
  • 举报
回复
有没有简单点的
gamelearner 2005-10-24
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <iostream.h>
#include <string.h>
#include <stdlib.h>

int SToI( const char* s )
{
int rVal = 0;
while( *s != '\0' )
rVal = rVal*10 + *s++ -'0';
return rVal;
}

void IToS( char* s, int n )
{
char* s_old = s;
do {
*s++ = n%10+'0';
n /= 10;
} while( n != 0 );
*s = '\0';
s = s_old;

int size = 0;
while ( *s++ != '\0' ) size++;
s -= 2;
size /= 2;
while( size-- > 0 )
{
*s_old ^= *s;
*s ^= *s_old;
*s_old++ ^= *s--;
}
}

void main()
{
char* s = (char*)malloc(100);
IToS( s, SToI("00099")+1 );
printf( "%s\n", s );
free( s );
}
megaboy 2005-10-24
  • 打赏
  • 举报
回复
char cData[20] = "00099", cTemp[20], *cpTemp = cData ;
int iTemp;
while(*cpTemp == 0x30) cpTemp++;
iTemp = atoi(cpTemp)+1;
strcpy(cpTemp, itoa(iTemp, cTemp, 10));
liubo1977 2005-10-24
  • 打赏
  • 举报
回复
写是可以写,有没有什么函数可以调用.
jsjjms 2005-10-24
  • 打赏
  • 举报
回复
由于是0开头,所以不能使用函数itoa,atoi,不过那两个函数都可以自己写的呀,
加入你自己的判断就可以了.不要将0开头的变成8进制就ok了。

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧