c中符号转换为小写字母

标签 c

我正在编写一个程序,该程序使用异或对文件进行编码并将加密文本打印到另一个文件中。从技术上讲它是有效的,但是输出包含多个符号而不仅仅是小写字符。我如何告诉程序只打印小写字母,并能够将其解码回来?

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




int main(int argc, char *args[]){
  FILE *inFile, *outFile, *keyFile;
  int key_count = 0;
  int encrypt_byte;
  char key[1000];

  inFile = fopen("input.txt", "r"); 
  outFile = fopen("output.txt", "w"); 
  keyFile = fopen("key.txt", "r");




  while((encrypt_byte = fgetc(inFile)) !=EOF)
    {
      fputc(encrypt_byte ^ key[key_count], outFile); //XORs
      key_count++;
      if(key_count == strlen(key)) //Reset the counter
     key_count = 0;
    }
        printf("Complete!");

    fclose(inFile);
    fclose(outFile);
    fclose(keyFile);
    return(0);  
}

这是我得到的输出:

ÕââÐå朶è”ó

我只是希望它只使用小写字母

最佳答案

你不能。您要么对文件的所有数据进行异或,要么不进行异或。异或运算将产生不可打印的字符。

不过,您可以做的是,首先对它进行异或,然后对其进行 base64 编码。

要取回原始文本/数据,请执行相反的操作。

另请参阅How do I base64 encode (decode) in C?

关于c中符号转换为小写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33719164/

相关文章:

c - 最快的子串搜索算法是什么?

c - 我想计算一个无符号字符的逆掩码

c - 下面两个作业有什么区别?

c - 数组索引大小

C 在 for 循环上的基本交互

c - 如何使用 Frama-C 将变量类型保存到文件

c - 我使用函数 "putchar()"来打印测试结果,但我得到的却是一个问号

指向 union 存储的字符指针

微 Controller 寄存器的更干净的命名空间

c - 为什么sockaddr_storage 结构定义为它定义的方式?