如何使用整数X按字母顺序旋转字符?

问题描述 投票:-1回答:1

我一直在尝试不同的解决方案,但不确定在哪里寻找解决方案。

我提示用户输入“明文”,无论输入内容是什么,输入中的字符都必须按其提供的数字(即键)按字母顺序旋转。

例如:明文:如果密钥为1,HELLO将吐出密文:IFMMP。

假设键始终是数字,这是我的代码尝试通过键旋转每个字符的样子:1.我是一个真正的菜鸟,请分解一下。

 
                  {
              string s = get_string("plaintext: ");                                    
              printf("ciphertext: %s\n", s + 1);
                  }   

剩余的代码(包括识别和过滤密钥的方法是:

#include <cs50.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>

int main(int argc, string argv[])

{                
    int counter = 0;    
    if (argc == 2)
    {
      for (int k = 0; k <strlen(argv[1]); k++)
      {
          if (isdigit(argv[1][k]))
          {
             counter++;         
          }}
                         
          if (strlen(argv[1]) == counter)
              
                  {
              string s = get_string("plaintext: ");                                    
              printf("ciphertext: %s\n", s + 1);
                  }   
        
         else
                  {
              printf("Usage: ./caesar key\n");
                  }
    }
          else
                  {
              printf("Usage: ./caesar key\n");
                  }                     
  
}

将提供任何帮助。

c argv strlen
1个回答
0
投票

您可以通过类型转换来实现:

char input = 'f';
char output = (char)((int)input + 1);

您还应该处理小写字母,即字符在字母的结尾附近。

© www.soinside.com 2019 - 2024. All rights reserved.