码迷,mamicode.com
首页 > 其他好文 > 详细

使用getchar()获取字符串

时间:2019-03-12 12:08:24      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:using   gets   import   war   字符串   i++   cpp   scanf   编译器   

  在C/C++中,输出printf或cout可以输出数字、字符、字符串。但是输入函数scanf和cin在输入字符串时遇空格便会停止,带来不少的麻烦。

#include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;


int main()
{
    char c;
    char s[200];
    int i = 0;
    cin >> s;
    cout <<s<<endl;
    return 0;
}

 

输入 i love you
输出 i

  如果为们想获取一段有空格的字符串scanf或cin便不起作用了,这时一般推荐gets函数,不幸的是报错:

‘gets‘ is deprecated [-Wdeprecated-declarations] gets在新版的编译器中一般认为是危险的。

  我们可以使用getchar()获取这样的字符串,需要注意的是getchar()连回车符都会读取。因此对字符串“i love you”,getchar()读取了11个字符(算上执行的回车符)。

 

#include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;


int main()
{
    char c;
    char s[200];
    int i = 0;
    while(true)
    {
        c  = getchar();
        if (c == ‘\n‘) //防止回车符加入到s[]中
            break;
        s[i++] = c;
    }
    cout <<s<<endl;
    return 0;
}

 

 例题:

描述

Julius Caesar曾经使用过一种很简单的密码。对于明文中的每个字符,将它用它字母表中后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

明文
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

你的任务是对给定的密文进行解密得到明文。

你需要注意的是,密文中出现的字母都是大写字母。密文中也包括非字母的字符,对这些字符不用进行解码。

输入
一行,给出密文,密文不为空,而且其中的字符数不超过200。
输出
输出一行,即密文对应的明文。
样例输入
NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX
样例输出
IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES

#include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;

char decode(char c)
{
   if (c >= F && c <= Z)
   {
        return (c - 5);
   }
    else if (c >= A && c < F)
    {
        return c + 21;
    }
    else 
        return c;
}

int main()
{
    char c;
    char s[200];
    int i = 0;
    while(true)
    {
        c  = getchar();
        if (c == \n)
            break;
        s[i++] = decode(c);
    }
    cout <<s<<endl;]
  return 0; }

 

 

使用getchar()获取字符串

标签:using   gets   import   war   字符串   i++   cpp   scanf   编译器   

原文地址:https://www.cnblogs.com/venray/p/10515745.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!