| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3077 人关注过本帖
标题:一个大写字母变成小写字母的程序,很简单但是有错误还没发现,求高手指教
只看楼主 加入收藏
月祭樱冢
Rank: 2
等 级:论坛游民
帖 子:83
专家分:97
注 册:2013-7-15
收藏
得分:0 
这样就行了
程序代码:
#include <stdio.h>
void main()
{

 char s[100];

 int i;

 printf("输入字符串:");

 gets(s);

 for(i=0;s[i];i++)
  if(s[i]>='A'&&s[i]<='Z')s[i]+=32;

 puts(s);
}

算法是程序的灵魂
2013-08-07 21:29
月祭樱冢
Rank: 2
等 级:论坛游民
帖 子:83
专家分:97
注 册:2013-7-15
收藏
得分:0 
回复 9楼 love云彩
我用IE 打开的啊 可是不行  而且 我用附件的功能贴不上图

算法是程序的灵魂
2013-08-07 21:31
月祭樱冢
Rank: 2
等 级:论坛游民
帖 子:83
专家分:97
注 册:2013-7-15
收藏
得分:0 
以下是引用love云彩在2013-8-7 21:15:15的发言:

楼主你都说那么简单了,那我就不多解释了,自己看代码,我只是稍微修改了一下。
#include
#include
void main()
{
char c[20];
int i=0;
printf("请输入字符串C:");
scanf("%s",c);
for(i=0;i<=strlen(c);i++)
if(c>='A'&&c<='Z')
 { c=c+32;
  printf("%c",c);
}
}
如果输入的字符串中间有空格你这个就只能读空格之前的了

算法是程序的灵魂
2013-08-07 21:32
如风似水
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2013-8-7
收藏
得分:0 
回复 6楼 小小程序猿
谢谢谢谢,我昨天看过你的回复后,又调试了一下,最终和7楼差不多,然后出结果了。再次感谢你

徜徉在代码的海洋中,不断汲取营养
2013-08-08 08:52
如风似水
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2013-8-7
收藏
得分:0 
回复 13楼 月祭樱冢
  我昨晚调了 最终程序和你的差不多,主要是else那有点混乱  谢谢了
#include<stdio.h>
 #include<string.h>
 main()
 {
 char c[100];
 int i=0;
 printf("请输入字符串C:");
 scanf("%s",c);
 for(i=0;i<strlen(c);i++)
 if(c[i]>='A'&&c[i]<='Z')
c[i]=c[i]+'a'-'A';
   printf("%s\n",c);
 
 }

徜徉在代码的海洋中,不断汲取营养
2013-08-08 08:54
月祭樱冢
Rank: 2
等 级:论坛游民
帖 子:83
专家分:97
注 册:2013-7-15
收藏
得分:0 
回复 15楼 如风似水
LZ  结贴吧

算法是程序的灵魂
2013-08-08 09:00
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
收藏
得分:0 
楼主,哥教你个简单点的:
程序代码:
#include<stdio.h>
#include<string.h>

void main()
{
    char c[20];
    int i=0,len;

    printf("请输入字符串C:");
    scanf("%s",c);
    len  = strlen(c);

    for(;i<len&&(c[i]|=32);i++);
           
    puts(c);
       
}

 可以再简单点:
程序代码:
#include<stdio.h>
#include<string.h>

void main()
{
    char c[20];
    int i=0;

    printf("请输入字符串C:");
    scanf("%s",c);


    for(;c[i]&&(c[i]|=32);i++);
           
    puts(c);
       
}



[ 本帖最后由 liufashuai 于 2013-8-8 09:09 编辑 ]

有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2013-08-08 09:04
如风似水
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2013-8-7
收藏
得分:0 
回复 9楼 love云彩
IE浏览器有截图功能么???

徜徉在代码的海洋中,不断汲取营养
2013-08-08 15:07
如风似水
Rank: 1
等 级:新手上路
帖 子:17
专家分:3
注 册:2013-8-7
收藏
得分:0 
回复 17楼 liufashuai
能多问你个问题么?
#include<stdio.h>
main()
{
int c, nl=0;
nl = 0;
while ((c = getchar()) != EOF)
if (c == '\n')
++nl;
printf("%d\n", nl);
}
这个是书上程序,行计数功能,为什么不能正常显示结果,编译已通过

徜徉在代码的海洋中,不断汲取营养
2013-08-08 15:11
liufashuai
Rank: 9Rank: 9Rank: 9
来 自:冥界-魔域-魂殿
等 级:蜘蛛侠
威 望:1
帖 子:370
专家分:1374
注 册:2012-6-22
收藏
得分:0 
回复 19楼 如风似水
这是个扯淡的问题,以前详细的研究过。

代码没错,刚试过了,是这样:
程序代码:
#include<stdio.h>

main()
{
    int c, nl=0;

    nl = 0;
    while ((c = getchar()) != EOF)
        if (c == '\n')
        ++nl;

    printf("%d\n", nl);

}
顺便说一声,哥们,代码尽量写的美观一些。

你的代码是查看输出多少行字符的功能,之所以没有结果是因为你不知道怎么结束这个输入过程
,也就是你不知道怎么跳出循环

其实跳出循环的条件是 = EOF,即文件结尾,但是在控制台下不会有文件结尾一说
但是控制台给Ctrl+z(windows平台)这个快捷键来表示结尾处理
不同平台不一样。Linux下的是Ctrl+d。你可以试一下

有一种落差是,你配不上自己的野心,也辜负了所受的苦难。






2013-08-08 15:39
快速回复:一个大写字母变成小写字母的程序,很简单但是有错误还没发现,求高手指 ...
数据加载中...
 
   



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

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