Question
Write a C program that prompts the user to enter a series of integers that represent a coded message. I have given you the decoder
Write a C program that prompts the user to enter a series of integers that represent a coded message. I have given you the decoder program so that you can see how it is written using array notation. Your assignment is to convert the code to a program that uses only pointers and pointer math. Your program must use pointer notation and pointer math (i.e. no array index notation other than in the declaration section, no arrays of pointers and no pointer offsets).
The dialog with the user might look like:
Enter string digits to decode: 109 138 145 145 148 81 69 142 153 76 152 69 146 138 70 10 Enter the secret offset integer: 37
Decoded: Hello, it's me!
Note: The bold text represents the "user input" from your program and is shown for clarity only here.
Also note that what the user types in is indicated by the bolded black text above. Again, for clarity only. (The text will limited to an 80 character message. To test, copy and paste the entire line of digits above).
The below sample provides a solution to the program using "array" notation, remember we need to use pointer notation. You should use it as a guide and just modify the code to use pointer notation.
Note: An arrow line comment (< ----) can be found on the code that needs to be removed and replaced by pointer notation.
// HINT: decoder program using arrays
#include
void safer_gets(char [], int);
int main() { int i, x, y; char c; int v[81]={0}; // stores the coded string in number form char t[81]; // stores the string that was coded
// user enters a string to be decoded: printf(" Enter all the string digits to decode: "); i=0; do { scanf("%i", &v[i]); //<------------*** if(v[i] == 10) break; //<------------*** i++; //<------------*** }while(i < 81); // end while //<------------*** // now enter an offset number: printf("Enter the secret offset integer: "); scanf("%i", &x); while(c = getchar() != ' '); // now decode and convert to string i = 0; while(v[i] != 10) //<------------*** { y = v[i]; //<------------*** t[i] = y - x; //<------------*** i++; //<------------*** }// end while loop t[i] = '\0'; //<------------***
printf(" "); printf(" decoded: "); i = 0; while(t[i] != '\0') //<------------*** { printf("%c", t[i]); //<------------*** i++; //<------------*** }// end while printf(" "); return 0; }// end main
/* sample runs:
Enter string digits to decode: 109 138 145 145 148 81 69 142 153 76 152 69 146 138 70 10 Enter the secret offset integer: 37
decoded: Hello, it's me!
Press any key to continue . . .
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