Question
Part 2: argshift. [70 points] argshift is a program that takes a string as input, and shifts each letter in it forward by one letter
Part 2: argshift. [70 points] argshift is a program that takes a string as input, and shifts each letter in it forward by one letter (except z, which gets converted back to a). So, abcz should turn into bcda. This includes capital letters, but does not include non-alphabetical characetrs, such as punctuation, spaces and digits. For this, you should implement the following functions: char shift_char(char c) char* dup_shift(char* s) See the source code for more information about what each function should do. The memory space allocated for storing the return string should be dynamically allocated from the heap. You should allocate the least amount of space that can still hold the result. Your code should not change the string s. For this part you may use the standard library functions malloc, calloc, realloc, free and printf to manage dynamic memory allocation/deallocation and print the result. After you implement the function strdup ptr() correctly, your code should work as in the sample runs listed below: $./argshift Enter a string: Ludicrous Speed, Go! Mvejdspvt Tqffe, Hp! You should fix all memory leaks (if any) in the code. It is highly recommended that you look at an ASCII chart when doing this assignment. One may be found by running man ascii
#include
// return the length of a string // For example, // return 0 if s is "" // return 3 if s is "abc" unsigned long my_strlen(char *s) { unsigned long i = 0;
while (*s ++) i ++; return i; }
/* This should shift the 'a' to 'b', 'b' to 'c', ..., 'z' to 'a', as well as the capital letters. Don't shift non-alphabetical characters. */ char shift_char(char x){
}
/** Returns a pointer to a new string which is * a copy of the given string s. */ char* dup_shift(char* s) { }
int main(int argc, char *argv[]) { char input[100]; printf("Enter a string: "); scanf("%[^ ]s", input); char* dups_ptr = dup_shift(input); printf("%s ", dups_ptr); free(dups_ptr); return 0;
}
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started