c++ 字符串问题

苏飞哥 2009-05-27 02:27:52
double dbGasVal=1001.1;

double dbgas=dbGasVal*10;

char wgas[8];

sprintf(wgas,"%8.1f",dbgas);

for(int i=0;i<6;i++)
{
if(wgas[i]==' ')
{
wgas[i]=0;
}
}
strncpy(wgas1,wgas,6);
通过strncpy把wgas 拷到wgas1可是wgas1里面的值全是空的,这是什么原因?
...全文
74 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
苏飞哥 2009-05-27
  • 打赏
  • 举报
回复
能加你QQ吗?
czfnaruto 2009-05-27
  • 打赏
  • 举报
回复
double dbGasVal=1001.1;

double dbgas=dbGasVal*10;

char wgas[8];

sprintf(wgas,"%8.1f",dbgas);

for(int i=0;i <6;i++)
{
//if(wgas[i]==' ') //这里去点就能显示了
//{
//wgas[i]=0;
//}
}

strncpy(wgas1,wgas,6);
printf("%s\n",wgas1); //显示的效果
czfnaruto 2009-05-27
  • 打赏
  • 举报
回复
我调试过了

sprintf(wgas,"%8.1f",dbgas); //这句话之后 wgas[0]=' ';是空字符

然后

if(wgas[i]==' ') //i==0时成立
{
wgas[i]=0;
}

循环之后 wgas[0]='\0'; 就是空字符的意思



最后 strncpy(wgas1,wgas,6); //strncpy遇到第一个 '\0'就停止了 因为wgas[0]='\0';所以 wgas1就全是空字符了
Sou2012 2009-05-27
  • 打赏
  • 举报
回复
UP!!!
苏飞哥 2009-05-27
  • 打赏
  • 举报
回复
wgas1里面的值全部是0;
Sou2012 2009-05-27
  • 打赏
  • 举报
回复
UP!!!
苏飞哥 2009-05-27
  • 打赏
  • 举报
回复
少了一句 char wgas1[6];
czfnaruto 2009-05-27
  • 打赏
  • 举报
回复
你可以先调试看看 wgas里面本来是什么值
czfnaruto 2009-05-27
  • 打赏
  • 举报
回复
哈哈 没看仔细 算我乱说先
czfnaruto 2009-05-27
  • 打赏
  • 举报
回复
wgas[i]=0; //0就是空字符的意思

65,211

社区成员

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

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