1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Zina [86]
3 years ago
6

Your team will write a function that reverses a C-string, to practice using pointers. You must use pointers and C-strings for th

is lab, not string objects. Your program should ask for the user's input, as "Enter the original string: " Then, it should print out the reversed string to the console.

Computers and Technology
1 answer:
Nutka1998 [239]3 years ago
3 0

Answer:

Here is the C++ program:

#include <iostream> //to use input output functions

#include<string.h> // to manipulate strings

using namespace std; //to identify objects like cin cout

void ReverseString(char* original_str){ // function that reverses a C-string

       char* ptr1 = original_str;  // pointer that points to the start of C-string

       char* ptr2 = original_str; // pointer that points to the start of C-string initially

       for (int i = 0; i < strlen(original_str)- 1; i++) {//iterates through the length of the C-string

           ptr2++;} //moves ptr2 to the end of the C-string

       while(ptr1 < ptr2) {// swaps each character of C-string using pointers

               char temp = *ptr1; //declares a temp variable to hold character that *ptr1 points to

               *ptr1 = *ptr2;

               *ptr2 = temp;

               ptr1++; //increments ptr1 moving it forward

               ptr2--;   }} //decrements ptr2 moving it backwards

int main(){ //start of main() function

       char input_str[]="";  /// declare a C-string

       cout<<"Enter original string: "; //prompts user to enter a string

       cin>>input_str; // reads that C-string from user

       ReverseString(input_str); //calls function to revserse the input string

       cout<<"\nReversed string: "<<input_str;} // displays the reversed string

Explanation:

The program has a function ReverseString that takes a C-style string as parameter and reverses the string using pointers.

The ptr1 and ptr2 are pointers that initially point to the beginning of original string.

for (int i = 0; i < strlen(original_str)- 1; i++) this statement has a for loop that iterates through the original string and moves the ptr2 to point at the end or last character of the C-string. strlen() method is used to get the length of the C-string. At each iteration ptr2 moves one time forward until the last character of the C-string is reached.

while(ptr1 < ptr2) statement has a while loop that works as follows:

checks if ptr1 is less than ptr2. This evaluate to true because the index of first character that ptr1 points to is 0 and last character is 5 so 0<5. Hence the statements inside while loop execute which swaps the character of C-string from beginning and end index using ptr1 and ptr2. a temp variable is declated to hold character that *ptr1 points to.

For example

original_string = "xyz" Then temp = *ptr1; stores the character that *ptr1 points to i.e. 'x'

*ptr1 = *ptr2; This statement assigns the character that *ptr2 points to the *ptr1. Basically these pointers are used as indices to the C-string. So this means that the *ptr1 now stores the last character of the C-string that is pointed to by *ptr2. So *ptr1 = 'z'

*ptr2 = temp; This statement assigns the character that temp stores to the *ptr2. We know that temp contains the first character i.e 'x'. So *ptr2 = 'x'      

ptr1++; The ptr1 is incremented to 1. This means it moves one position ahead and now points to the second character of the C-string.

ptr2--; The ptr2 is decremented to 1. This means it moves one position backwards and now points to the second character of the C-string.

Now the while loop breaks because ptr1 < ptr2 condition evaluates to false.

So the original string is reversed using pointers. Hence the output is:

zyx

screenshot of the program along with its output is attached.

You might be interested in
A new thread begins its life cycle by transitioning to the ________ state. Group of answer choices new runnable waiting terminat
Schach [20]

A new thread begins its life cycle by transitioning to the runnable state.

A thread goes through various stages in its life cycle. Following are the stages of the life cycle.

  1. New : A new thread begins its life cycle in the new state. It remains in this state until the program starts the thread. It is also referred to as a born thread.
  2. Runnable − After a newly born thread is started, the thread becomes runnable. A thread in this state is considered to be executing its task.
  3. Waiting
  4. Time waiting
  5. Terminated: A runnable thread enters the terminated state when it completes its task or otherwise terminates.

Find out more on thread life cycle at: brainly.com/question/7510515

4 0
3 years ago
Which line in the following program will cause a compiler error?
Viktor [21]

Answer:

The answer is "Option A".

Explanation:  

  • In the given C++ Language program on line 8 compile-time error will occur, because in the code the conditional statement is used. In if block, we check two conditions together, which is the number variable value is greater than equal to 0 and check less than equal to 100.  
  • In this condition statement, a AND operator is used that execute when both condition is true, but in the last condition, we do not define a variable name that, checks value. That's why the program will give an error on line 8.
3 0
3 years ago
HELP PLEASE!!!! If you are continually building, reviewing, correcting a model of your system, and incrementally adding to the s
Novosadov [1.4K]

Answer: evolutionary with high fidelity

Explanation:

You are trying to improve the model so that it is able to match any problem. This is evolutionary.

At the same time the model seems to be close to being finalised with all the improvements being made. It is past the design stage and so must be a high fidelity prototype.

6 0
3 years ago
Describe the operation of IPv6 Neighbor Discovery. ​
max2010maxim [7]
Can you give me the link to an article about this so i may help?
6 0
3 years ago
PLEASE ANSWER CORRECTLY
Bess [88]

Answer:

If you know how many passes you'll be making, a for loop is most suitable.

If you do not know ahead of time, the while loop is better, since the while condition will decide if you're going to make another round.

5 0
3 years ago
Other questions:
  • When u look at a green object through red glass the object will appear
    11·2 answers
  • Social scientists who study criminal behavior.
    7·2 answers
  • While accessing mail through the mail command interface, a user sees 5 new messages in his mailbox. Since the second message app
    13·1 answer
  • On the Design tab, which group allows you to select a different data set for a chart?
    7·2 answers
  • If you have a document that is relevant to more than one folder in your computer what should you do?
    8·1 answer
  • How will you ensure that all of the network's applications and tcp/ip services also support ipv6?
    10·1 answer
  • Software engineers typically use UML as a principle means of explaining design. UML stands for:
    12·1 answer
  • If E=mc2 then what does F equal?
    10·1 answer
  • Who is known as the first computer programmer?​
    13·1 answer
  • Which of the following commands can be used to display socket information out to the terminal screen
    12·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!