m0_61873236 2022-02-22 22:49 采纳率: 85%
浏览 111
已结题

c语言程序相关的问题

c语言初学者
编写一个程序
要求读取命令行所输入的一个数字
然后将输入的字母转换成原字母加上数字后在Asscii所对应的字母
符号不变
例子 :

./test 1
How are you?
Ipx bsf zpv?

这是我的代码 能帮我看看怎么修改吗

#include<stdio.h>

int encrypt(int character, int shift) {    
    char m=character;
    if((m>='A' && m<='Z')||(m>='a' && m<='z')) 
    {
     m=m+shift;
    }
    return 0;
}

int main(int argc,char *argv[]) {
    int ch;
    int i=1;
    while((ch=getchar())!= EOF) {
    ch=encrypt(ch,argv[i]);
    putchar(ch);
}   
}

  • 写回答

5条回答 默认 最新

  • _GX_ 2022-02-23 00:03
    关注
    #include <stdio.h>
    #include <stdlib.h>
    
    int encrypt(int c, int s)
    {
        s %= 26;
        if (s < 0)
            s += 26;
        if (c >= 'A' && c <= 'Z')
            return (c - 'A' + s) % 26 + 'A';
        else if (c >= 'a' && c < 'z')
            return (c - 'a' + s) % 26 + 'a';
        else
            return c;
    }
    
    int main(int argc, char *argv[])
    {
        int ch;
        while ((ch = getchar()) != EOF)
            putchar(encrypt(ch, atoi(argv[1])));
        return 0;
    }
    
    $ gcc -Wall main.cpp
    $ ./a.out 1
    How are you?
    Ipx bsf zpv?
    $ ./a.out -27
    How are you?
    Gnv zqd xnt?
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 3月4日
  • 已采纳回答 2月24日
  • 创建了问题 2月22日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?