| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 12165 人关注过本帖
标题:字符数组输入字符串怎么用回车表示输入结束?
只看楼主 加入收藏
qq1920778865
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2016-10-31
结帖率:83.33%
收藏
已结贴  问题点数:18 回复次数:13 
字符数组输入字符串怎么用回车表示输入结束?
#include<stdio.h>
int main()
{
    char a[200],i;
    printf("START\n");
    while(~scanf("%s\n",a))
    {
        printf("START\n");
        for(i=0;i<=199;i++)
        {
            if(a[i]<=5)
            {
                a[i]=90-4+i;
            }
            else
            {
                a[i]=a[i]-5;
            }
        }
        printf("%s\n",a);
        printf("END");
    }
    printf("ENDOFINPUT");
    return 0;
}此程序怎么完善?题目:据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F)。而你要获得消息原文,也就是要将这个过程反过来。

密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z M
原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

注意:只有字母会发生替换,其他非字母的字符不变,并且消息原文的所有字母都是大写的。
Input
最多不超过100个数据集组成,每个数据集之间不会有空行,每个数据集由3部分组成:

起始行:START
密码消息:由1到200个字符组成一行,表示凯撒发出的一条消息.
结束行:END


在最后一个数据集之后,是另一行:ENDOFINPUT
Output
每个数据集对应一行,是凯撒的原始消息。
Sample Input
START
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX
END
START
N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ
END
START
IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ
END
ENDOFINPUT
Sample Output
IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES
I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME
DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE
搜索更多相关主题的帖子: 密码 字符串 return include 
2016-11-22 14:08
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:9 
可以不用while\\scanf("%[^\n]"%*c,&a);试试看~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-22 14:24
qq1920778865
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2016-10-31
收藏
得分:0 
回复 楼主 qq1920778865
初学者看不懂你的这个语句,这是什么意思?
2016-11-22 14:29
qq1920778865
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2016-10-31
收藏
得分:0 
回复 楼主 qq1920778865
初学者看不懂你的这个语句,这是什么意思?
2016-11-22 14:44
qq1920778865
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2016-10-31
收藏
得分:0 
回复 2楼 九转星河
初学者看不懂,请问这是什么意思?
2016-11-22 14:46
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 5楼 qq1920778865
参考http://blog.

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-22 14:46
EdmundDantes
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:62
专家分:173
注 册:2016-11-9
收藏
得分:9 
   
 while(fgets(a,200,stdin))
 {
   if(a[0] == '\n')
     break;
用scanf()我还不知道怎么用\n结束,fgets知道,希望可以帮到你
2016-11-22 14:47
EdmundDantes
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:62
专家分:173
注 册:2016-11-9
收藏
得分:0 
刚才百度了一下,scanf只有用%c才会读取回车,其他都是忽略的。
2016-11-22 14:50
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 7楼 EdmundDantes
fgets不是用于文件的么~还可以这样用么~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-22 14:52
EdmundDantes
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:62
专家分:173
注 册:2016-11-9
收藏
得分:0 
回复 9楼 九转星河
可以啊 - -!,fgets(cahr* 要输入的地址 , size_t 读入最大字符数,FILE* 可以是文件流 ,也可以是标准输入,比如stdin键盘),读到字符串里会有'\n',如果是键盘的话。
2016-11-22 15:01
快速回复:字符数组输入字符串怎么用回车表示输入结束?
数据加载中...
 
   



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

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