Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cs50.h>
- #include <ctype.h>
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- bool count_argv(int argc);
- bool only_digits(string s);
- int string_to_int(string s);
- char rotate(char c, int h);
- int main(int argc, string argv[])
- {
- bool n1 = count_argv(argc);
- bool n2 = only_digits(argv[1]);
- const int key = string_to_int(argv[1]);
- if (n1 == 0 && n2 == 0)
- {
- string text = get_string("plaintext: ");
- printf("ciphertext: ");
- for (int i = 0, n = strlen(text); i < n; i++)
- {
- printf("%c", rotate(text[i], key));
- }
- printf("\n");
- }
- }
- bool count_argv(int argc)
- {
- if (argc != 2)
- {
- printf("Usage: ./caeser key\n");
- return 1;
- }
- else
- {
- return 0;
- }
- }
- bool only_digits(string s)
- {
- for (int j = 0, n = strlen(s); j < n; j++)
- {
- if (!isdigit(s[j]))
- {
- printf("Usage: ./caeser key\n");
- return 1;
- }
- }
- return 0;
- }
- int string_to_int(string s)
- {
- int m;
- m = atoi(s);
- return m;
- }
- char rotate(char c, int h)
- {
- int cc;
- if(isalpha(c))
- {
- if(isupper(c))
- {
- cc = c - 'A';
- int k = (cc + h) % 26;
- c += k;
- }
- else
- {
- cc = c - 'a';
- int k = (cc + h) % 26;
- c += k;
- }
- return c;
- }
- else
- {
- return c;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement