Diff
checker
文本
文本
图像
文档
Excel
文件夹
Legal
Enterprise
桌面版
定价
登录
下载 Diffchecker 桌面版
比较文本
查找两个文本文件之间的差异
工具
历史
实时编辑器
隐藏空白更改
折叠未更改行
关闭换行
视图
拆分
统一
比对精度
智能
单词
字符
文本样式
更改外观
语法高亮
选择语法
忽略
文本转换
转到第一个差异
编辑输入
Diffchecker Desktop
运行Diffchecker最安全的方式。获取Diffchecker桌面应用:您的差异永远不会离开您的电脑!
获取桌面版
Untitled diff
创建于
10年前
差异永不过期
清除
导出
分享
解释
16 删除
行
总计
删除
字符
总计
删除
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
93 行
全部复制
14 添加
行
总计
添加
字符
总计
添加
要继续使用此功能,请升级到
Diff
checker
Pro
查看价格
92 行
全部复制
#include <stdio.h>
#include <stdio.h>
#include <cs50.h>
#include <cs50.h>
#include <string.h>
#include <string.h>
#include <ctype.h>
#include <ctype.h>
#include <math.h>
#include <math.h>
void EncryptLower(int key, char i);
void EncryptLower(int key, char i);
void EncryptUpper(int key, char i);
void EncryptUpper(int key, char i);
int WhichArray(char* keyword, int CharNum);
int WhichArray(char* keyword, int CharNum);
int main(int argc, string argv[])
int main(int argc, string argv[])
{
{
if (argc != 2)
if (argc != 2)
{
{
printf("Please enter one key after ./vigenere\n.");
printf("Please enter one key after ./vigenere\n.");
return 1; // Make sure that 2 arguments are passed into the program else exit and return 1 as error message
return 1; // Make sure that 2 arguments are passed into the program else exit and return 1 as error message
}
}
复制
已复制
复制
已复制
char* keyword = argv[1]; // Assign the key into a variable
//
char* keyword = argv[1]; // Assign the key into a variable
//if (isalpha(keyword) != true) // Check that the key is all letters
//if (isalpha(keyword) != true) // Check that the key is all letters
//{
//{
// return 1; // Exit program
// return 1; // Exit program
//}
//}
复制
已复制
复制
已复制
char*
message = GetString(); // Store the message
string
message = GetString(); // Store the message
复制
已复制
复制
已复制
int z = strlen(message);
//
int z = strlen(message);
//
int shift[
z
];
int shift[
strlen(argv[1])
];
复制
已复制
复制
已复制
for(int a = 0, n = strlen(
keyword
); a < n; a++) //Go through the characters of the key and create an array of keys to use
for(int a = 0, n = strlen(
argv[1]
); a < n; a++) //Go through the characters of the key and create an array of keys to use
{
{
复制
已复制
复制
已复制
if(isupper(
keyword
[a]))
if(isupper(
argv[1]
[a]))
{
{
复制
已复制
复制
已复制
int
shift[
n
] =
keyword
[a] - 65; // populate the array with an index to encrypt with
shift[
a
] =
argv[1]
[a] - 65; // populate the array with an index to encrypt with
}
}
复制
已复制
复制
已复制
else if(islower(
argv[1]
[a]))
else if(islower(
keyword
[a]))
{
{
复制
已复制
复制
已复制
int
shift[
n
] =
keyword
[a] - 97; // populate the array with an index to encrypt with
shift[
a
] =
argv[1]
[a] - 97; // populate the array with an index to encrypt with
}
}
}
}
for(int i = 0, x = strlen(message); i < x; i++) // for first to last character
for(int i = 0, x = strlen(message); i < x; i++) // for first to last character
{
{
if(isalpha(message[i])) // Check if the value is a character
if(isalpha(message[i])) // Check if the value is a character
{
{
if(islower(message[i])) // check if the value is lowercase
if(islower(message[i])) // check if the value is lowercase
{
{
复制
已复制
复制
已复制
int key0 = shift [WhichArray(
keyword
, i)]; // which array will find which number of array to pull this should work.
int key0 = shift [WhichArray(
argv[1]
, i)]; // which array will find which number of array to pull this should work.
EncryptLower(key0, message[i]);
EncryptLower(key0, message[i]);
}
}
else if(isupper(message[i])) //check if the the value is uppercase
else if(isupper(message[i])) //check if the the value is uppercase
{
{
复制
已复制
复制
已复制
int key1 = shift [WhichArray(
keyword
, i)];
int key1 = shift [WhichArray(
argv[1]
, i)];
EncryptUpper(key1, message[i]);
EncryptUpper(key1, message[i]);
}
}
}
}
else
else
{
{
printf("%c", message[i]); // Not sure if this will work, print any charcter not encrypted eg. a number or brackets
printf("%c", message[i]); // Not sure if this will work, print any charcter not encrypted eg. a number or brackets
}
}
}
}
printf("\n");
printf("\n");
return 0;
return 0;
}
}
void EncryptLower(int key, char i) // Encrypt Lowercase letters
void EncryptLower(int key, char i) // Encrypt Lowercase letters
{
{
int cipher = ((i + key - 97) % 26) + 97; //encrypt the char
int cipher = ((i + key - 97) % 26) + 97; //encrypt the char
printf("%c", cipher); // print the encrypted char
printf("%c", cipher); // print the encrypted char
}
}
void EncryptUpper(int key, char i) // Encrypt the uppercase letters
void EncryptUpper(int key, char i) // Encrypt the uppercase letters
{
{
int cipher = ((i + key - 65) % 26) + 65; // encrypt the char
int cipher = ((i + key - 65) % 26) + 65; // encrypt the char
printf("%c", cipher); // print the encrypted char
printf("%c", cipher); // print the encrypted char
}
}
int WhichArray(char* keyword, int CharNum) // Find out which array to go into, CharNum is the character number in the string
int WhichArray(char* keyword, int CharNum) // Find out which array to go into, CharNum is the character number in the string
{
{
int x = CharNum % strlen(keyword);
int x = CharNum % strlen(keyword);
return x;
return x;
}
}
已保存差异
原始文本
打开文件
#include <stdio.h> #include <cs50.h> #include <string.h> #include <ctype.h> #include <math.h> void EncryptLower(int key, char i); void EncryptUpper(int key, char i); int WhichArray(char* keyword, int CharNum); int main(int argc, string argv[]) { if (argc != 2) { printf("Please enter one key after ./vigenere\n."); return 1; // Make sure that 2 arguments are passed into the program else exit and return 1 as error message } char* keyword = argv[1]; // Assign the key into a variable //if (isalpha(keyword) != true) // Check that the key is all letters //{ // return 1; // Exit program //} char* message = GetString(); // Store the message int z = strlen(message); //int shift[z]; for(int a = 0, n = strlen(keyword); a < n; a++) //Go through the characters of the key and create an array of keys to use { if(isupper(keyword[a])) { int shift[n] = keyword[a] - 65; // populate the array with an index to encrypt with } else if(islower(keyword[a])) { int shift[n] = keyword[a] - 97; // populate the array with an index to encrypt with } } for(int i = 0, x = strlen(message); i < x; i++) // for first to last character { if(isalpha(message[i])) // Check if the value is a character { if(islower(message[i])) // check if the value is lowercase { int key0 = shift [WhichArray(keyword, i)]; // which array will find which number of array to pull this should work. EncryptLower(key0, message[i]); } else if(isupper(message[i])) //check if the the value is uppercase { int key1 = shift [WhichArray(keyword, i)]; EncryptUpper(key1, message[i]); } } else { printf("%c", message[i]); // Not sure if this will work, print any charcter not encrypted eg. a number or brackets } } printf("\n"); return 0; } void EncryptLower(int key, char i) // Encrypt Lowercase letters { int cipher = ((i + key - 97) % 26) + 97; //encrypt the char printf("%c", cipher); // print the encrypted char } void EncryptUpper(int key, char i) // Encrypt the uppercase letters { int cipher = ((i + key - 65) % 26) + 65; // encrypt the char printf("%c", cipher); // print the encrypted char } int WhichArray(char* keyword, int CharNum) // Find out which array to go into, CharNum is the character number in the string { int x = CharNum % strlen(keyword); return x; }
更改后文本
打开文件
#include <stdio.h> #include <cs50.h> #include <string.h> #include <ctype.h> #include <math.h> void EncryptLower(int key, char i); void EncryptUpper(int key, char i); int WhichArray(char* keyword, int CharNum); int main(int argc, string argv[]) { if (argc != 2) { printf("Please enter one key after ./vigenere\n."); return 1; // Make sure that 2 arguments are passed into the program else exit and return 1 as error message } //char* keyword = argv[1]; // Assign the key into a variable //if (isalpha(keyword) != true) // Check that the key is all letters //{ // return 1; // Exit program //} string message = GetString(); // Store the message //int z = strlen(message); int shift[strlen(argv[1])]; for(int a = 0, n = strlen(argv[1]); a < n; a++) //Go through the characters of the key and create an array of keys to use { if(isupper(argv[1][a])) { shift[a] = argv[1][a] - 65; // populate the array with an index to encrypt with } else if(islower(argv[1][a])) { shift[a] = argv[1][a] - 97; // populate the array with an index to encrypt with } } for(int i = 0, x = strlen(message); i < x; i++) // for first to last character { if(isalpha(message[i])) // Check if the value is a character { if(islower(message[i])) // check if the value is lowercase { int key0 = shift [WhichArray(argv[1], i)]; // which array will find which number of array to pull this should work. EncryptLower(key0, message[i]); } else if(isupper(message[i])) //check if the the value is uppercase { int key1 = shift [WhichArray(argv[1], i)]; EncryptUpper(key1, message[i]); } } else { printf("%c", message[i]); // Not sure if this will work, print any charcter not encrypted eg. a number or brackets } } printf("\n"); return 0; } void EncryptLower(int key, char i) // Encrypt Lowercase letters { int cipher = ((i + key - 97) % 26) + 97; //encrypt the char printf("%c", cipher); // print the encrypted char } void EncryptUpper(int key, char i) // Encrypt the uppercase letters { int cipher = ((i + key - 65) % 26) + 65; // encrypt the char printf("%c", cipher); // print the encrypted char } int WhichArray(char* keyword, int CharNum) // Find out which array to go into, CharNum is the character number in the string { int x = CharNum % strlen(keyword); return x; }
查找差异