In: Computer Science
Your team will make a modification of the program #1 above, that will read in the string as a “command-line argument” to your program, instead ofhaving the user type it while your program is running. Your program should print out the inverted string to the screen. For example, if you are running your program in the command window (by clicking the Start button, then typing in “cmd”, then pressing Enter, then using the “cd ” command to change to the appropriate directory where the compiler has placed your .exe executable file), a successful run might look like this: M:\CS1113\Lab9>lab9.exe "This is a test" tset a si sihT If the user does not enter the string argument, your program should print out a brief “proper usage” message, which explains to the user the proper syntax of running your program, and which arguments to pass in. For example, M:\CS1113\Lab9>lab9.exe Welcome to our Lab 9 program which reverses a string! To use this program, please use the following syntax: lab9.exe “input string” M:\CS1113\Lab9>
#include <iostream>
#include <cstring>
using namespace std;
int Reverse(char * destination, const char * source, int num);
int main() // this is the test/driver code, for your function
{
const int STRINGSIZE = 10;
char oldCString[] = "Hello!";
char newCString[STRINGSIZE];
cout << "oldCString: " << oldCString << endl;
cout << "newCString before changing: " << oldCString << endl;
Reverse(newCString, oldCString, STRINGSIZE); // testing your function...
cout << "newCString after Reverse: " << newCString << endl;
return 0;
}
// Reverses a C-string passed in (source), and places the reversed
// C-string into (destination).
// (num) should represent the maximum valid length of (destination).
// If no null-zero character is found in (source) within (num-1)
// characters,the function will only read up to (num-1) characters
// from (source), and then copy the reversed characters to
// (destination) and append a null-zero to the end of it.
// The function will return the number of characters placed into
// (destination), including the null-zero.
// The function MUST use pointer notation (not array notation) inside
// it. However, you might find it useful to use array notation
// temporarily while developing the function, and then replace
// with pointer notation before turning in the assignment.
int Reverse(char * destination, const char * source, int num)
{
for (int x = 0; x < strlen(source); x++)
*( x + destination) = *( strlen(source) + source - 1 - x);
*(destination + strlen(source)) = '\0';
return 0;
}
#include <iostream>
#include <cstring>
using namespace std;
int Reverse(char * destination, const char * source, int num);
int main(int argc,char* argv[]) // this is the test/driver code, for your function
{
const int STRINGSIZE = 100;
char oldCString[] = "Hello!";
char newCString[STRINGSIZE];
printf("\nWelcome to our Lab 9 program which reverses a string!\n");
// if there is no arguments print
message
if(argc==1)
{
printf("\nTo use
this program, please use the following syntax: lab9.exe \"input
string\"\n");
}
// else reverse the string
else
{
// copy command line
argument to oldString
strcpy(oldCString,argv[1]);
cout << "oldCString: " << oldCString << endl;
cout << "newCString before changing: " << oldCString << endl;
Reverse(newCString, oldCString, STRINGSIZE); // testing your function...
cout << "newCString after Reverse: " << newCString << endl;
}
return 0;
}
// Reverses a C-string passed in (source), and places the reversed
// C-string into (destination).
// (num) should represent the maximum valid length of (destination).
// If no null-zero character is found in (source) within (num-1)
// characters,the function will only read up to (num-1) characters
// from (source), and then copy the reversed characters to
// (destination) and append a null-zero to the end of it.
// The function will return the number of characters placed into
// (destination), including the null-zero.
// The function MUST use pointer notation (not array notation) inside
// it. However, you might find it useful to use array notation
// temporarily while developing the function, and then replace
// with pointer notation before turning in the assignment.
int Reverse(char * destination, const char * source, int num)
{
for (int x = 0; x < strlen(source); x++)
*( x + destination) = *( strlen(source) + source - 1 - x);
*(destination + strlen(source)) = '\0';
return 0;
}
Output