A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贾永强 初级黑马   /  2015-3-19 23:03  /  896 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我想读入一个键盘输入的句子,例如Hello World!,用scanf该怎么实现呢?例如下面的程序该怎么修改呢?
#include "stdio.h"

void main(void){
    char Eng[1000],i,ch;
        printf("请输入一个英文句子\n");
        //gets(Eng);//使用gets函数实现字符串的输入
        scanf("%s",&Eng);
    for(ch=' ',i=0;Eng[i];i++){
        if(ch==' ' && Eng[i]>='a' && Eng[i]<='z')
                {
            printf("%c",(ch=Eng[i])&0xDF);//使用位运算实现小写转换为大写
                }
        else printf("%c",ch=Eng[i]);
    }
    printf("\n");
}

4 个回复

倒序浏览
scanf不能接受空格,所以要这样写scanf("%[^\n]",&Eng);后面的没看
回复 使用道具 举报
恋梦 发表于 2015-3-19 23:17
scanf不能接受空格,所以要这样写scanf("%[^\n]",&Eng);后面的没看

受教了,谢谢解惑啊
回复 使用道具 举报
for(ch=' ',i=0;Eng[i];i++)    你的for语句这样写不会变成死循环么?第二个分号写的是执行的条件,你都没给它一个执行结束的标志,这里我认为要注意一下
回复 使用道具 举报
可不可以定义一个二维数组试一试呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马