C Exercises: Reverse a string partially
C Basic-II: Exercise-2 with Solution
Write a C program that takes a string and two integers (n1, n2). Now reverse the sequence of characters in the string between n1 and n2.
Let l be the length of the string.
Constraints:
- 1 ≤ n1 ≤ n2 ≤ l ≤100
- Each letter of the string is an uppercase or lowercase letter.
Sample Date:
("abcdxyabcd", 5, 6) -> "abcdyxabcd"
("Exercises", 1, 3) -> "exercises"
C Code:
#include <stdio.h> // Include standard input/output library
#include <string.h> // Include string handling library
int main(void)
{
char text[101] = {0}; // Declare an array 'text' to hold the input string
char result[101] = {0}; // Declare an array 'result' to hold the modified string
int n1, n2, l; // Declare variables for position inputs and string length
// Prompt the user to input a string
printf("Input a string: ");
// Read the input string from the user and store it in the 'text' array
scanf("%s", text);
// Prompt the user to input position-1 for reversing the string
printf("Input position-1 for reverse the string: ");
// Read the position-1 input from the user and store it in 'n1'
scanf("%d", &n1);
// Prompt the user to input position-2 for reversing the string
printf("\nInput position-2 for reverse the string: ");
// Read the position-2 input from the user and store it in 'n2'
scanf("%d", &n2);
l = strlen(text); // Calculate the length of the input string and store it in 'l'
int i = 0;
// Copy characters from the start of 'text' to 'result' until position-1
for(; i< n1-1; i++) {
result[i] = text[i];
}
// Reverse and copy characters from position-2 to position-1 in 'text' to 'result'
for(int j = n2-1; i< n2; i++, j--) {
result[i] = text[j];
}
// Copy the remaining characters from 'text' to 'result'
for(; i<= l; i++) {
result[i] = text[i];
}
// Print the modified string
printf("Reverse string (partly): %s\n", result);
return 0;
}
Sample Output:
Input a string: Input position-1 for reverse the string: abcdxyabcd 5 6 Input position-2 for reverse the string: Reverse string (partly): abcdyxabcd
Flowchart:
C Programming Code Editor:
Previous C Programming Exercise: Find the integer that appears the least often.
Next C Programming Exercise: Second largest among three integers.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/c-programming-exercises/basic-2/c-programming-basic-2-exercise-2.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics