| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 985 人关注过本帖
标题:一个大小写转换的问题
只看楼主 加入收藏
Dream_weaver
Rank: 1
等 级:新手上路
帖 子:37
专家分:2
注 册:2012-6-8
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:10 
一个大小写转换的问题
#include<stdio.h>
#include<string.h>
int main()
{
    char str[80],c;
    int i;
    printf("please input a string:");
    for(i=0;(str[i]=getchar())!='\0';i++)     
    {                                    
        c=str[i];
        if(c>='a' && c<='z')  
            c=c-32;
        printf("%c",c);
    }

    printf("\n");
    return 0;
}
 //按照我的理解 它应该是输入一个字母判别一次大小写 输出一次
//但是这个程序实际实现的是:输入一行字符串,回车,转化一次
这是为什么呢?
搜索更多相关主题的帖子: include please 
2012-06-12 13:39
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:1 
getchar()是敲回车之后才开始处理的

授人以渔,不授人以鱼。
2012-06-12 14:02
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
看了你两个提问帖,发觉你的问题主要是没对使用的函数和功能做过认真的测试和探究就匆忙应用造成的。

授人以渔,不授人以鱼。
2012-06-12 14:28
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:2 
程序代码:
#include<stdio.h>
#include<string.h>
int main()
{
    char str[80],c;
    int i;
    printf("please input a string:");
    for(i=0;(str[i]=getchar())!='\0';i++)    
    {                                   
        c=str[i];
        if(c>='a' && c<='z') 
            c=c-32;
        printf("%c",c);

        fflush(stdin);


    }

    printf("\n");
    return 0;
}
这样你就知道了!


不管怎么走、总有一个终点...
2012-06-12 17:24
青春无限
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江苏
等 级:贵宾
威 望:24
帖 子:3452
专家分:19340
注 册:2012-3-31
收藏
得分:0 
h

学 会看代码…学习写程序…学会搞开发…我的目标!呵呵是不是说大话啊!!一切皆可能
2012-06-12 17:44
njdxsheng
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2012-6-10
收藏
得分:2 
for(i=0;(str[i]=getchar())!='\0';i++)     
    {                                    
        c=str[i];
        if(c>='a' && c<='z')  
            c=c-32;
        printf("%c",c);
    }

因为for语句的作用是当你输入的字符串出现\0标识符时,才停止向数组str中输入字符的,当你输入一串字符串时,先是缓存在键盘里,只有当输入回车键的时候才进行输入,在输入的时候系统会在字符串最后自动加上\0所以就出现你这种情况了。而且这个不能判断大小写,只能把小写字母转换为大写字母。
2012-06-12 21:09
橘子橙
Rank: 2
等 级:论坛游民
帖 子:7
专家分:11
注 册:2012-6-12
收藏
得分:0 
int main() 对么,我是新手,不都是main或者 void main么
2012-06-12 23:12
橘子橙
Rank: 2
等 级:论坛游民
帖 子:7
专家分:11
注 册:2012-6-12
收藏
得分:0 
int main() 对么,我是新手,不都是main或者 void main么
2012-06-12 23:12
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:0 
回复 8楼 橘子橙
额。。现在貌似标准就是
int main()
{
   return 0;
}

不管怎么走、总有一个终点...
2012-06-13 07:56
Dream_weaver
Rank: 1
等 级:新手上路
帖 子:37
专家分:2
注 册:2012-6-8
收藏
得分:0 
回复 3楼 TonyDeng
不好意思,多谢指出我的问题。现在正在复习C语言,不探究一下,确实不能深刻的理解函数的用法
2012-06-13 14:53
快速回复:一个大小写转换的问题
数据加载中...
 
   



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

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