关于混和运算问题

zxhong 2006-03-09 05:30:47
char str[100],*p;
sprintf(str,"%f",1.2);//将浮点数转换为字符串
p=str+strlen(str)-1;
//printf("p=%s\n",p);//输出错误0?


以上p输出什么?如何用printf打印出来?
...全文
110 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxhong 2006-03-10
  • 打赏
  • 举报
回复
感谢 jixingzhong 及 goodluckyxl

结贴
wqtl_357 2006-03-09
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string.h>

void main()
{
char str[100], *p;
sprintf(str, "%f", 1.2);//将浮点数转换为字符串
p=str + strlen(str) - 1;
//printf("p=%s\n",p);//输出错误0?
}



//以上p输出什么?如何用printf打印出来?

==============
乱整之后便是乱码。
逸学堂 2006-03-09
  • 打赏
  • 举报
回复
char str[100],*p;
sprintf(str,"%f",1.2);
p=str;// 指向字符传的指针,,没有指向字符串的开始位置
//printf("p=%s\n",p);
jixingzhong 2006-03-09
  • 打赏
  • 举报
回复
上面的注释乱码了 ,呵呵 ~

---------
楼主你的程序中,
str = "1.200000"
p=str+strlen(str)-1;
这里把指针指向了最后面的0,再后面就是 '\0',
所以输出的时候就是 一个 0 了啊 ~
jixingzhong 2006-03-09
  • 打赏
  • 举报
回复
#include<stdio.h>



int main()
{
char str[100],*p;
sprintf(str,"%f",1.2);//½«¸¡µãÊýת»»Îª×Ö·û´®
p=str;
printf("p=%s\n",p);//Êä³ö´íÎó0£¿

getch();
return 0;
}
alen_ghl 2006-03-09
  • 打赏
  • 举报
回复
什么东东
goodluckyxl 2006-03-09
  • 打赏
  • 举报
回复
sprintf(str,"%1.1f",1.2);//需要格式化才能显示最后一个字
否则都是按找小数点后6位存放 你看到都是0
ddddh 2006-03-09
  • 打赏
  • 举报
回复
p=str+strlen(str)-1;
改成p = str;

或者直接printf("%s\n", str);

70,020

社区成员

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

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