Last active
July 17, 2025 11:20
-
-
Save Juskr04/1f7263ef1ee78362e071f72af1e9f224 to your computer and use it in GitHub Desktop.
cs50 pset2 substitution problem
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| int calculate_key_size(char argv[]); // returns size of key | |
| int is_alphabet_arr(char argv[]); // checks whether all elements of an array are alphabets | |
| int is_alphabet_char(char a); // checks whether a character is an alphabet | |
| int repeat_letter_check(char argv[]); // checks whether a letter repeats in an array | |
| int alphabet_case_check(char a); // returns 0 for lowercase and 1 for uppercase | |
| int calculate_key_size(char argv[]){ | |
| int i = 0; | |
| int key_size = 0; | |
| while(argv[i] != '\0'){ | |
| key_size += 1; | |
| i++; | |
| } | |
| return key_size; | |
| } | |
| int is_alphabet_arr(char argv[]){ | |
| int a = 0; | |
| while(argv[a] != '\0'){ | |
| if(!((argv[a] >= 'A' && argv[a] <= 'Z') || (argv[a] >= 'a' && argv[a] <= 'z'))){ | |
| return 1; | |
| } | |
| a++; | |
| } | |
| return 0; | |
| } | |
| int is_alphabet_char(char a){ | |
| for(int j = 'A', k = 'a'; j < ('Z'+1); j++, k++){ | |
| if(a == j || a == k) | |
| return 0; | |
| } | |
| return 1; | |
| } | |
| int repeat_letter_check(char argv[]){ | |
| char used_alphabets[26]; | |
| for(int b = 0; b < 26; b++){ | |
| for(int j = 'A', k = 'a'; j < ('Z'+1); j++, k++){ | |
| if((int)argv[b] == j || (int)argv[b] == k){ | |
| used_alphabets[j-'A'] = '!'; // we want to map A to first index of array so substacting 65 or simply 'A' works | |
| break; | |
| } | |
| } | |
| } | |
| for(int c = 0; c < 26; c++){ | |
| if(used_alphabets[c] != '!'){ | |
| return 1; | |
| } | |
| } | |
| return 0; | |
| } | |
| int alphabet_case_check(char a){ | |
| for(int j = 'A', k = 'a'; j < ('Z'+1); j++, k++){ | |
| if(a == j) | |
| return 1; | |
| else if(a == k) | |
| return 0; | |
| } | |
| return -1; //can return any value as such because execution will never reach here | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment