liaokehua123 发表于 2017-12-19 10:08:41

大一c初学者

如何输入一串字母,然后打印出每个字母后四位的字母,如输入a答应e,输入b打印f?求救

BngThea 发表于 2017-12-19 10:12:29

先说说你的思路

sp1ral 发表于 2017-12-19 10:16:26

BngThea 发表于 2017-12-19 10:12
先说说你的思路

你随时都在论坛啊!

sp1ral 发表于 2017-12-19 10:17:19

将输入字符的ascii加4再输出

BngThea 发表于 2017-12-19 10:17:34

sp1ral 发表于 2017-12-19 10:16
你随时都在论坛啊!

almostly,yes

liaokehua123 发表于 2017-12-19 10:33:18

BngThea 发表于 2017-12-19 10:12
先说说你的思路

a到v的ascll码都+4,w到z则减去22对吗?可是我不会写

liaokehua123 发表于 2017-12-19 10:33:54

BngThea 发表于 2017-12-19 10:12
先说说你的思路

a到v的ascll码都+4,w到z则减去22对吗?可是我不会写

人造人 发表于 2017-12-19 10:36:56

#include <stdio.h>

int main(void)
{
        int ch;

        while(1)
        {
                printf("请输入一个字母:\n");
                scanf("%c", &ch);
                getchar();        // get掉'\n'
                printf("%c的后4位是%c\n\n", ch, ch + 4);
        }

        return 0;
}

liaokehua123 发表于 2017-12-19 10:41:19

人造人 发表于 2017-12-19 10:36


可能是我表达的不够准确吧,不是这个意思 ,不过还是多谢啦

人造人 发表于 2017-12-19 10:50:27

liaokehua123 发表于 2017-12-19 10:41
可能是我表达的不够准确吧,不是这个意思 ,不过还是多谢啦

#include <stdio.h>
#include <string.h>

int main(void)
{
        char buf;

        fgets(buf, 1024, stdin);
        int str_len = strlen(buf);

        for(int i = 0; i < str_len - 1; i++)
        {
                putc(buf + 4, stdout);
        }

        return 0;
}

BngThea 发表于 2017-12-19 10:55:02

楼上已经写得很好了
再for循环中再加上一个判断,
if (buf > 'v')
      putc(buf -22, stdout);
else
      putc(buf + 4, stdout);

qq1242009750 发表于 2017-12-19 17:11:50

BngThea 发表于 2017-12-19 10:55
楼上已经写得很好了
再for循环中再加上一个判断,

受教了{:5_106:}

卡毛贝比 发表于 2017-12-20 21:25:58

#include<iostream>
using namespace std;
int main()
{
        char ch='a';
        char c ;
       
        while (ch != '\n')
        {
                cin.get(ch);
                if (ch != '\n')
                {

                        c = ch + 4;
                        cout << c;
                }
        }
        cout << endl;
        system("pause");
}
页: [1]
查看完整版本: 大一c初学者