| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 379 人关注过本帖
标题:帮忙看看一个简单的问题。。。。。。。。。。。。
只看楼主 加入收藏
ab6326795
Rank: 2
等 级:论坛游民
帖 子:91
专家分:56
注 册:2010-11-8
结帖率:80%
收藏
 问题点数:0 回复次数:8 
帮忙看看一个简单的问题。。。。。。。。。。。。
帮忙看看一个简单的问题:
程序代码:
#include<stdio.h>

void main()
{
    int a;
    a=strcmp("sss","i");

    printf("%d\t%d",a,strlen("akk");
getch();
}

上面代码哪有问题啊?请高手赐教,是不是少了什么头文件?还有strlwr("jnHHHLK")这样的也用了,提示错误。。。
2011-06-24 15:25
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
printf("%d\t%d",a,strlen("akk"));
2011-06-24 15:27
ab6326795
Rank: 2
等 级:论坛游民
帖 子:91
专家分:56
注 册:2010-11-8
收藏
得分:0 
回复 2楼 voidx
I am sorry ,大意了
2011-06-24 15:29
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:0 
#include<string.h>
#include<conio.h>
2011-06-24 15:30
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 3楼 ab6326795
请自抽直至脸部呈 ')' 状,以自省,嘿嘿
2011-06-24 15:33
ab6326795
Rank: 2
等 级:论坛游民
帖 子:91
专家分:56
注 册:2010-11-8
收藏
得分:0 
回复 4楼 hjywyj
那哥再看看这个
程序代码:
#include<stdio.h>

void main()
{
    int a;
    char c[20]={"heLLO WORld"};
    a=strcmp("sss","i");

    printf("%d\t小写:%s\t大写:%s",a,strlwr(c),strupr(c));
getch();
}

我用VS测试可以输出转换的小写字母,为何输出不了大写的,结果如下:
图片附件: 游客没有浏览图片的权限,请 登录注册


请看看啥问题?
2011-06-24 15:37
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
这不是问题。而且这种情况比较复杂。
首先你需要知道 strlwr() 和 strupr() 会改变传递给它的实参所指向的字符串。
也就是说 strlwr(c) 之后 strcmp(c, "hello world") == 0;
然后嘛,就要牵扯到编译器的表达式解析算法了,这个我也不很了解。
不过,这里能看出来先执行了 strupr(),后执行了 strlwr()。
之后这两个函数的返回值,即 c 传递给 printf()。
而这时候 c 指向的字符串已经被修改成 "hello world" 了。
所以这个结果是正常现象。

[ 本帖最后由 voidx 于 2011-6-24 16:01 编辑 ]
2011-06-24 16:00
ab6326795
Rank: 2
等 级:论坛游民
帖 子:91
专家分:56
注 册:2010-11-8
收藏
得分:0 
回复 7楼 voidx
哦,这就有点像那个什么“转义字符”咯,转义字符输出的也有时会被修改,而达不到你原来设计者想要的效果。所以最好分开写对吧。这样就好了:
程序代码:
#include<stdio.h>

void main()
{
    int a;
    char c[20]={"heLLO WORld"};
    a=strcmp("sss","i");

    printf("%d\t小写:%s",a,strlwr(c));
    printf("%d\t大写:%s",a,strupr(c));
getch();
}


2011-06-24 16:27
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
回复 8楼 ab6326795
转义字符不会出现这种问题
2011-06-24 16:31
快速回复:帮忙看看一个简单的问题。。。。。。。。。。。。
数据加载中...
 
   



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

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