Skip to content

Instantly share code, notes, and snippets.

@Juskr04
Last active July 17, 2025 11:20
Show Gist options
  • Select an option

  • Save Juskr04/1f7263ef1ee78362e071f72af1e9f224 to your computer and use it in GitHub Desktop.

Select an option

Save Juskr04/1f7263ef1ee78362e071f72af1e9f224 to your computer and use it in GitHub Desktop.
cs50 pset2 substitution problem
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