黑马程序员技术交流社区

标题: scanf输入带空格句子的问题 [打印本页]

作者: 贾永强    时间: 2015-3-19 23:03
标题: scanf输入带空格句子的问题
我想读入一个键盘输入的句子,例如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");
}
作者: 恋梦    时间: 2015-3-19 23:17
scanf不能接受空格,所以要这样写scanf("%[^\n]",&Eng);后面的没看
作者: 贾永强    时间: 2015-3-19 23:28
恋梦 发表于 2015-3-19 23:17
scanf不能接受空格,所以要这样写scanf("%[^\n]",&Eng);后面的没看

受教了,谢谢解惑啊
作者: waterfoxjie    时间: 2015-3-20 00:13
for(ch=' ',i=0;Eng[i];i++)    你的for语句这样写不会变成死循环么?第二个分号写的是执行的条件,你都没给它一个执行结束的标志,这里我认为要注意一下
作者: lyz0925    时间: 2015-3-20 00:18
可不可以定义一个二维数组试一试呢?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2