社区
新手乐园
帖子详情
谁能帮我简单的实现这个"算法"??
RichRiver
2004-08-12 08:46:24
int num = 8;
char temp[3];
itoa(num,temp,10);之后,temp的值为8
而我希望是temp的值为008
谁能帮我简单的实现这个"算法"呢??
...全文
123
21
打赏
收藏
谁能帮我简单的实现这个"算法"??
int num = 8; char temp[3]; itoa(num,temp,10);之后,temp的值为8 而我希望是temp的值为008 谁能帮我简单的实现这个"算法"呢??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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)
几个推荐
算法
的java
实现
java
实现
的几个推荐
算法
:slopeone SVD,RSVD,ItemNeighborSVD 内有readme,相关内容在blog.csdn.net/lgnlgn
MoreWindows白话经典
算法
之七大排序第2版(高清)
在第一版的基础上新加了对冒泡排序,直接插入排序,直接选择排序,希尔排序,归并排序,快速排序和堆排序这七种常用的排序方法的总结篇,方便大家复习,合适作为笔试面试前的复习资料。
相似图片搜索原理 Java
实现
源码
Google "相似图片搜索":你可以用一张图片,搜索互联网上所有与它相似的图片。 这种技术的原理是什么?计算机怎么知道两张图片相似呢? 根据Neal Krawetz博士的解释,原理非常
简单
易懂。我们可以用一个快速
算法
,就达到基本的效果。 这里的关键技术叫做"感知哈希
算法
"(Perceptual hash algorithm),它的作用是对每张图片生成一个"指纹"(fingerprint)字符串,然后比较不同图片的指纹。结果越接近,就说明图片越相似。 这是一个最
简单
的
实现
。
CryptoJS文件-提供各种加密解密算
CryptoJS提供各种加密解密
算法
, 并且里面有个aes的
简单
实现
,希望可以
帮
助大家
什么是标签传播
算法
?为什么要使用标签传播
算法
?如何使用?
什么是标签传播
算法
?为什么要使用标签传播
算法
?如何使用? 标签传播在半监督学习中很有用,在半监督学习中,我们有很少的标记点和大量的未标记实例,我们希望将标签从标记样本传播到未标记样本,这样我们就可以扩容我们的标记信息,进而可以获得更好的监督学习的模型。 如果我们有一个下游的监督学习任务,需要更多的数据(绝大多数机器学习任务,都是希望数据多多益善的),我们会想要
实现
它(把未标注的这些数据通过标签传播的方式利用起来)。 一个
简单
的策略是基于距离的传播,首先我们将训练一个
算法
来进行无监督聚类
新手乐园
33,321
社区成员
41,774
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章