Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

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 #include #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

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Fundamentals Of Database Systems

Authors: Sham Navathe,Ramez Elmasri

5th Edition

B01FGJTE0Q, 978-0805317558

More Books

Students also viewed these Databases questions

Question

What does stickiest refer to in regard to social media

Answered: 1 week ago