| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 425 人关注过本帖
标题:字符串函数理解方法
只看楼主 加入收藏
oszc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:111
专家分:154
注 册:2011-4-15
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
字符串函数理解方法
程序代码:
#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    const char *string="51.2% are admitted";

    double d;
    char *stringPtr;

    d=strtod(string,&stringPtr);

    printf("%s\n%f\n%s\n",string,d,stringPtr);

    return 0;


请看printf语句 ,打印string的时候为什么不用*string,按照上面的方法,应该打印string地址值才对啊,后面的stringPtr也是,我认为都是要加*的。
是否有更好的理解方式,不吝赐教。
搜索更多相关主题的帖子: 字符串 
2011-05-21 15:48
bccn_0000
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2011-5-9
收藏
得分:0 
把完整的程序发出来吧。。。
2011-05-21 16:10
oszc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:111
专家分:154
注 册:2011-4-15
收藏
得分:0 
已经很完整了。。。
2011-05-21 16:16
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
double对应的输出格式是%lf吧。另外,strtod()是什么函数?

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-21 16:20
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:20 
以下是引用oszc在2011-5-21 15:48:23的发言:

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
    const char *string="51.2% are admitted";

    double d;
    char *stringPtr;

    d=strtod(string,&stringPtr);

    printf("%s\n%f\n%s\n",string,d,stringPtr);

    return 0;

请看printf语句 ,打印string的时候为什么不用*string,按照上面的方法,应该打印string地址值才对啊,后面的stringPtr也是,我认为都是要加*的。
是否有更好的理解方式,不吝赐教。



为什么要加*呢?string指针是指向字符串的首地址,既然是这样,那*string在你这题目上就是'5',然后你用%s来输出一个字符,答案可想而知啦,不信你可以试试,定义一个字符,然后用字符串格式来输出字符,看看有什么样的结果!如果你坚决一个字符一个字符输出,那就用循环咯!
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
%s只是提供了一种便捷的方式使我们可以不用循环就可以输出一串字符,至于它是怎样实现的,我也不知道!

[ 本帖最后由 liangjinchao 于 2011-5-21 19:22 编辑 ]

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-05-21 19:15
夜叶
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:189
注 册:2011-5-7
收藏
得分:0 
楼上给力,顶起
2011-05-21 19:22
夜叶
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:189
注 册:2011-5-7
收藏
得分:0 
望说明下那个函数strtod()的功能及用法,不胜感激
2011-05-21 19:25
oszc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:111
专家分:154
注 册:2011-4-15
收藏
得分:0 
以下是引用liangjinchao在2011-5-21 19:15:29的发言:




为什么要加*呢?string指针是指向字符串的首地址,既然是这样,那*string在你这题目上就是'5',然后你用%s来输出一个字符,答案可想而知啦,不信你可以试试,定义一个字符,然后用字符串格式来输出字符,看看有什么样的结果!如果你坚决一个字符一个字符输出,那就用循环咯!  %s只是提供了一种便捷的方式使我们可以不用循环就可以输出一串字符,至于它是怎样实现的,我也不知道!


也就是说"%s" 可以打印出在字符常量地址值的字符
2011-05-21 21:24
liangjinchao
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:376
专家分:697
注 册:2010-11-8
收藏
得分:0 
以下是引用oszc在2011-5-21 21:24:23的发言:



也就是说"%s" 可以打印出在字符常量地址值的字符

可以这样理解吧!

因为有了因为,所以有了所以,既然已成既然,何必再说何必
2011-05-21 23:37
快速回复:字符串函数理解方法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026670 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved