如何加0的问题

aomy 2005-12-23 12:00:25
现在我在写程序的时候遇到一个问题 ,LPCSTR A ,A是由别人传过来的值当A小于5位的时候,必须前面加0,补齐5位,应该怎么加?我总写错,大家帮帮忙,谢谢
...全文
136 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
thomaslw 2005-12-23
  • 打赏
  • 举报
回复
我对LPCSTR这个结构不熟(好象就是专门为消息准备的STR吧....但我有个想法~

在不丢失的精度的情况下,把A强制转换成 STRING.
缺多少位就在这个STRING前面加多少0就是了.

对STRING的操作简单啥~ 楼上兄弟那有~
----------------------------------
添加0的地方,根据你程序而定.

要不在外层套一个函数,在那个函数中处理(被调用函数是系统函数不能更改的情况).

要不加在你那个函数体开头(被调用函数是自己写的,可以随便改).
ouyh12345 2005-12-23
  • 打赏
  • 举报
回复
char *ptr=A;
char str[6];
sprintf(str,"%d%d%s",0,0,ptr);//补足5位
strcpy(A,str);
pinel 2005-12-23
  • 打赏
  • 举报
回复
LPCSTR a="abced";
char* c=new char[20];
sprintf(c,"%010s",a);
晨星 2005-12-23
  • 打赏
  • 举报
回复
LPCSTR pad(LPCSTR s) {
int len = (int)strlen(s);
if(5 <= len)
return s;

static CHAR buf[6];
strcpy(buf, "00000");
strcpy(buf + 5 - len, s);
return buf;
}
Kid4you 2005-12-23
  • 打赏
  • 举报
回复
忘了delete...不好意思
Kid4you 2005-12-23
  • 打赏
  • 举报
回复
// 不知道这样行不行

#include<iostream>
using namespace std;

char * SetZero(char *p)
{
// 如果大于5位
if (strlen(p) >= 5)
{
return p;
}

// 小于5位
int i = 5 - strlen(p);
char *pTmp = new char[6];
char *pp = pTmp;
while (i--)
*pp++ = '0';
strcpy(pp, p);
return pTmp;

}


int main()
{
char sz[10];
while (cin >> sz)
{
cout << SetZero(sz) << endl;
}

return 0;
}
yhbttfile 2005-12-23
  • 打赏
  • 举报
回复
如果小于5位,则重新申请指针,然后按照你的要求填写好后就OK了;然后删除传过来的指针(如果指针需要删除的话);再使用指针;使用完指针记得释放自己创建的指针内存。

64,676

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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