社区
新手乐园
帖子详情
谁能帮我简单的实现这个"算法"??
RichRiver
2004-08-12 08:46:24
int num = 8;
char temp[3];
itoa(num,temp,10);之后,temp的值为8
而我希望是temp的值为008
谁能帮我简单的实现这个"算法"呢??
...全文
151
21
打赏
收藏
谁能帮我简单的实现这个"算法"??
int num = 8; char temp[3]; itoa(num,temp,10);之后,temp的值为8 而我希望是temp的值为008 谁能帮我简单的实现这个"算法"呢??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
21 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
antijpn
2004-08-12
打赏
举报
回复
sprintf似乎灵活性上面不是很好,进制转换就没办法进行了(只能到十进制、十六进制,八进制了)
如果数据再大一点,可以考虑超过十的进制,这样就可以保存更大一点的数字了(36进制的三位可以保存0~46655了)
RichRiver
2004-08-12
打赏
举报
回复
哈哈
这就是我想要的
结贴,给分
寒雪叔叔
2004-08-12
打赏
举报
回复
天,英雄所见,代码的相似度99.9999%,佩服stephen_wang_2000
expert2000
2004-08-12
打赏
举报
回复
学习,帮顶。楼主给点分我就能升级。
寒雪叔叔
2004-08-12
打赏
举报
回复
long num = 8;
char temp[4];
sprintf(temp, "%03d", num);
stephen_wang_2000
2004-08-12
打赏
举报
回复
int num = 8;
char temp[4];
sprintf(temp,"%03d",num);
RichRiver
2004-08-12
打赏
举报
回复
char ch_data[3]={0,0,0};
char temp[3]={0,0,0};
char ttt;
int num;
itoa(num,temp,10);
if(num<10)
{
ttt=temp[0];
ch_data[2]=ttt;
}else if((num>9)&&(num<100))
{
ttt=temp[0];
ch_data[1]=ttt;
ttt=temp[1];
ch_data[2]=ttt;
}else if(num>99)
strcpy(ch_data,temp);
我是这样写的,感觉麻烦:(
YunTan
2004-08-12
打赏
举报
回复
前面代码要#incluce <string>之后才能用。效率低,但思路清晰易写。
YunTan
2004-08-12
打赏
举报
回复
我从来不喜欢考虑小程序的效率,所以给一个简单代码给楼主:
itoa(num,temp,10);
std::string szNum = temp;
while(szNum.size()<3){
szNum = '0' + szNum;
}
//此时szNum的内容已经是“003”
//如果要在temp中以字符数组返回,那么这样做:
strcpy(temp,szNum.c_str());
antijpn
2004-08-12
打赏
举报
回复
回复人: kenan2002() ( ) 信誉:100 2004-08-12 08:56:00 得分: 0
strcat("00",itoa(num,temp,10));
什么时候strcat能这样用了?这样搞不好就是个非法操作,因为你没有正确分配空间
kenan2002
2004-08-12
打赏
举报
回复
同意中
kenan2002
2004-08-12
打赏
举报
回复
精彩!
YunTan
2004-08-12
打赏
举报
回复
打错了:
“字符串"008"的长度是4个字节”。
看到前面的留言:
strcat("00",itoa(num,temp,10));
这样的语句,内存如果不崩溃证明你运气非常的好。
RichRiver
2004-08-12
打赏
举报
回复
回复: YunTan(闲云潭影)
itoa(num,temp,10);之后
temp = [8][..][..]
我希望是[0][0][8]
antijpn
2004-08-12
打赏
举报
回复
如果不考虑我上面说的问题,你的转换好像也不对,转换成"008"以后应该用char[4]来保存,而不是char[3]
简单一点的就是采用两次itoa,对第一次得到的结果使用strlen,然后填充前面的内容,在调用一次itoa把真正的数据补上去
具体代码如下
extern char buf[4];
extern int ival;
itoa(ival,buf,10);
unsigned int Len=strlen(buf);//buf里面不能超过三位数字
Len=3-Len;
memset(buf,'0',Len);//前面填充'0'
itoa(ival,buf+Len,10);//填充实际数据,这样就可以了
RichRiver
2004-08-12
打赏
举报
回复
回复:clshan()
就是自己怎么补简单阿,有简单的函数吗?
回复: antijpn(antijpn)
最大就是999
回复: kenan2002()
不难吧?
YunTan
2004-08-12
打赏
举报
回复
自己补上,判断temp的长度(strlen)是多少,少于3的就在前面添加'0'。
另外提醒:
字符串"008"的长度是4个自己,而你的temp才定义了三个字节,是不够用的。num是整形,最大长度有十来位(十进制),为了安全起见,建议将你的temp定义改为:char temp[12]。
kenan2002
2004-08-12
打赏
举报
回复
strcat("00",itoa(num,temp,10));
kenan2002
2004-08-12
打赏
举报
回复
简单吗?
antijpn
2004-08-12
打赏
举报
回复
只给三位?那最多也只能是从char到char*阿,int型数据大了以后你怎么办?
加载更多回复(1)
实现
简单
选择排序
算法
本文深入解析
简单
选择排序
算法
,详细介绍了其工作原理和步骤。通过一个C语言
实现
的例子,展示了如何在数组中寻找最小元素并将其置于正确位置,从而完成整个序列的排序。适合初学者理解和掌握
简单
选择排序的基本概念。
打卡信奥刷题(1085)用C++
实现
信奥 P1786
帮
贡排序
本文围绕信奥P1786
帮
贡排序题目展开,介绍了题目背景、描述、输入输出格式等。题目要求对
帮
派人员职位按
帮
贡调整,乐斗显示按职位和等级排序。还给出了数据范围等信息,最后作者表示会用C++
实现
更多信奥
算法
题并分享相关内容。
kmeans
算法
简单
实现
本文深入探讨了KMeans聚类
算法
的原理,包括它的基本思想、步骤和优缺点。通过实例展示了如何从头
实现
一个
简单
的KMeans
算法
,并提供了相关的Python代码片段。此外,还讨论了KMeans在实际应用中的注意事项和调参技巧。
排序
算法
2——图解
简单
选择排序及其
实现
本文详细介绍了
简单
选择排序的基本思想,通过图解的方式展示了排序过程。文中提供了排序
算法
的代码
实现
,并分析了其时间复杂度,指出虽然与冒泡排序时间复杂度相同,但实际性能更优。此外,还包含了
算法
的测试结果。
P1786
帮
贡排序【排序】
本文介绍了一种
帮
贡排序
算法
,用于游戏
帮
派内部成员职位调整。通过
帮
贡和等级两个关键字,
实现
了
帮
派成员的合理排序,确保了高
帮
贡玩家能够获得更高级别的职位。
新手乐园
33,316
社区成员
41,770
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章