logo

Invertir una cadena en C

Aquest tema tractarà diverses maneres d'invertir una cadena en el llenguatge de programació C. Invertir una corda és la tècnica que inverteix o canvia l'ordre d'una cadena donada de manera que l'últim caràcter de la cadena es converteixi en el primer caràcter de la cadena i així successivament. A més, també podem comprovar el palíndrom de la cadena donada invertint la cadena original.

Per exemple, introduïm una cadena ' POMA ', i després utilitzeu l'algorisme invers. L'algorisme invers retorna la cadena ' ELPPA ' que és completament invers a la cadena original.

Invertir una cadena en C

Diferents maneres de trobar el revés d'una corda a la C

A continuació es mostren les diferents maneres de trobar el revers d'una cadena en el llenguatge de programació C:

  1. Inverteix una cadena utilitzant la funció strrev().
  2. Inverteix una cadena sense utilitzar la funció de biblioteca
  3. Inverteix una cadena utilitzant la funció de recursivitat
  4. Inverteix una cadena utilitzant el bucle for
  5. Inverteix una cadena utilitzant el bucle while
  6. Inverteix una cadena utilitzant punters
  7. Inverteix una cadena per comprovar si hi ha Palíndrom

Programa 1: imprimeix el revers d'una cadena utilitzant la funció strrev().

Considerem un exemple per imprimir el revers d'una cadena utilitzant la funció strrev().

Programa 1.c

alinear una imatge en css
 #include #include int main() { char str[40]; // declare the size of character string printf (' 
 Enter a string to be reversed: '); scanf ('%s', str); // use strrev() function to reverse a string printf (' 
 After the reverse of a string: %s ', strrev(str)); return 0; } 

Sortida

 Enter a string to be reversed: AMBULANCE After the reverse of a string: ECNALUBMA 

Programa 2: imprimeix el revers d'una cadena sense utilitzar la funció de biblioteca

Considerem un exemple per imprimir el revers d'una cadena utilitzant la funció definida per l'usuari.

Programa 2.c

 #include #include // function definition of the revstr() void revstr(char *str1) { // declare variable int i, len, temp; len = strlen(str1); // use strlen() to get the length of str string // use for loop to iterate the string for (i = 0; i <len 2; i++) { temp variable use to temporary hold the string str1[i]="str1[len" - i 1]; str1[len 1]="temp;" } int main() char str[50]; size of printf (' enter string: '); gets(str); gets() function take 
 before reversing %s 
', str); call revstr() revstr(str); after %s', < pre> <p> <strong>Output</strong> </p> <pre> Enter the string: Welcome Friends Before reversing the string: Welcome Friends After reversing the string: sdneirF emocleW </pre> <h3>Program 3: Print the reverse of a string using the recursion function</h3> <p>Let&apos;s consider an example to print the reverse of a string using the recursion function.</p> <p> <strong>Recursion function:</strong> A recursion function is a function that continuously calls the same function without using a looping statement.</p> <p> <strong>Program3.c</strong> </p> <pre> #include #include // use recursion function void revstr(char *str1) { // declare static variable static int i, len, temp; len = strlen(str1); // use strlen() to get the length of str string if (i <len 2){ temp variable use to temporary hold the string str1[i]="str1[len" - i 1]; str1[len 1]="temp;" i++; revstr(str1); recusively calls revstr() function } int main() { char str1[50]; size of printf (' enter string: '); gets(str1); gets() take 
 before reversing %s 
', str1); call after %s', < pre> <p> <strong>Output</strong> </p> <pre> Enter the string: LIFE INSURANCE Before reversing the string: LIFE INSURANCE After reversing the string: ECNARUSNI EFIL </pre> <h3>Program 4: Print the reverse of a string using for loop</h3> <p>Let&apos;s consider an example to print the reverse of a string using for loop in C programming language.</p> <p> <strong>Program4.c</strong> </p> <pre> #include #include #include void main() { char str[50], temp; // define the size of str[] array int i, left, right, len; printf (&apos; 
 Display a reverse string in the C: 
&apos;); printf (&apos; ----------------------- &apos;); printf (&apos; 
 Enter a string to reverse order: &apos;); scanf( &apos;%s&apos;, &amp;str); len = strlen(str); // get the length of the string left = 0; // set left index at 0 right = len - 1; // set right index len - 1 // use for loop to store the reverse string for (i = left; i <right; i++) { temp="str[i];" str[i]="str[right];" str[right]="temp;" right--; } printf (' the reverse of original string is: %s ', str); getch(); < pre> <p> <strong>Output</strong> </p> <pre> Display a reverse string in the C: ----------------------- Enter a string to reverse order: APPLE The reverse of the original string is: ELPPA </pre> <h3>Program 5: Print the reverse of a string using while loop</h3> <p>Let&apos;s consider an example to print the reverse of a string using while loop in C programming language.</p> <p> <strong>Program5.c</strong> </p> <pre> #include #include int main() { char str1[50], temp; // declare and initialize the size of string array. int i = 0, j =0; printf (&apos; Enter a string to be reversed: &apos;); scanf( &apos;%s&apos;, str1); j = strlen (str1) - 1; // get the length of the string // use while loop to define the condition while ( i <j) 1 { use temp variable to store the characters of str1 str1[j]="str1[i];" str1[i]="temp;" i++; i incremented by j--; j is decremented } printf (' reversed string: %s', str1); return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a string to be reversed: JAVATPOINT The reversed of the string: TNIOPTAVAJ </pre> <h3>Program 6: Print the reverse of a string using pointers</h3> <p>Let&apos;s consider an example to print the reverse of a string using pointers in the C programming language.</p> <p> <strong>Program6.c</strong> </p> <pre> #include #include int str_len( char *st); void revstr( char *st); int main() { char st[50]; printf (&apos; Enter a string to be reversed: &apos;); scanf( &apos;%s&apos;, st); revstr(st); printf (&apos; The reverse string is: %s&apos;, st); return 0; } void revstr (char *st) { int len, i; char *start, *end, temp; len = str_len (st); start = st; end = st; for (i = 0; i <len - 1; i++) end++; for (i="0;" i < len 2; { temp="*end;" *end="*start;" *start="temp;" start++; end--; } int str_len (char *ptr) while ( *(ptr + i) !="" ) i++; return i; pre> <p> <strong>Output</strong> </p> <pre> Enter a string to be reversed: JAVATPOINT The reverse string is: TNIOPTAVAJ </pre> <h3>Program 7: Program to check whether the reverse string is a Palindrome</h3> <p>Consider a program to check whether the given string is a palindrome or not in the C programming language.</p> <p> <strong>Program7.c</strong> </p> <pre> #include #include int main () { // declare variables char str1[30]; int i, len, flag = 0; printf (&apos; Enter a string: &apos;); scanf (&apos;%s&apos;, str1); len = strlen( str1 ); // get the string length for ( i = 0; i <len; i++) { str1[i] is not equal to str1[len-i-1] if (str1[i] !="str1[len" - i 1]) flag="1;" break; exit from statement } (flag) printf (' %s a palindrome string', str1); else palindrome', return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a string: madam madam is a palindrome string. </pre> <hr></len;></pre></len></pre></j)></pre></right;></pre></len></pre></len>

Programa 3: imprimeix el revers d'una cadena mitjançant la funció de recursivitat

Considerem un exemple per imprimir el revers d'una cadena utilitzant la funció de recursivitat.

Funció de recursivitat: Una funció de recursivitat és una funció que crida contínuament a la mateixa funció sense utilitzar una instrucció de bucle.

per a cada mecanografia

Programa 3.c

 #include #include // use recursion function void revstr(char *str1) { // declare static variable static int i, len, temp; len = strlen(str1); // use strlen() to get the length of str string if (i <len 2){ temp variable use to temporary hold the string str1[i]="str1[len" - i 1]; str1[len 1]="temp;" i++; revstr(str1); recusively calls revstr() function } int main() { char str1[50]; size of printf (\' enter string: \'); gets(str1); gets() take 
 before reversing %s 
\', str1); call after %s\', < pre> <p> <strong>Output</strong> </p> <pre> Enter the string: LIFE INSURANCE Before reversing the string: LIFE INSURANCE After reversing the string: ECNARUSNI EFIL </pre> <h3>Program 4: Print the reverse of a string using for loop</h3> <p>Let&apos;s consider an example to print the reverse of a string using for loop in C programming language.</p> <p> <strong>Program4.c</strong> </p> <pre> #include #include #include void main() { char str[50], temp; // define the size of str[] array int i, left, right, len; printf (&apos; 
 Display a reverse string in the C: 
&apos;); printf (&apos; ----------------------- &apos;); printf (&apos; 
 Enter a string to reverse order: &apos;); scanf( &apos;%s&apos;, &amp;str); len = strlen(str); // get the length of the string left = 0; // set left index at 0 right = len - 1; // set right index len - 1 // use for loop to store the reverse string for (i = left; i <right; i++) { temp="str[i];" str[i]="str[right];" str[right]="temp;" right--; } printf (\' the reverse of original string is: %s \', str); getch(); < pre> <p> <strong>Output</strong> </p> <pre> Display a reverse string in the C: ----------------------- Enter a string to reverse order: APPLE The reverse of the original string is: ELPPA </pre> <h3>Program 5: Print the reverse of a string using while loop</h3> <p>Let&apos;s consider an example to print the reverse of a string using while loop in C programming language.</p> <p> <strong>Program5.c</strong> </p> <pre> #include #include int main() { char str1[50], temp; // declare and initialize the size of string array. int i = 0, j =0; printf (&apos; Enter a string to be reversed: &apos;); scanf( &apos;%s&apos;, str1); j = strlen (str1) - 1; // get the length of the string // use while loop to define the condition while ( i <j) 1 { use temp variable to store the characters of str1 str1[j]="str1[i];" str1[i]="temp;" i++; i incremented by j--; j is decremented } printf (\' reversed string: %s\', str1); return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a string to be reversed: JAVATPOINT The reversed of the string: TNIOPTAVAJ </pre> <h3>Program 6: Print the reverse of a string using pointers</h3> <p>Let&apos;s consider an example to print the reverse of a string using pointers in the C programming language.</p> <p> <strong>Program6.c</strong> </p> <pre> #include #include int str_len( char *st); void revstr( char *st); int main() { char st[50]; printf (&apos; Enter a string to be reversed: &apos;); scanf( &apos;%s&apos;, st); revstr(st); printf (&apos; The reverse string is: %s&apos;, st); return 0; } void revstr (char *st) { int len, i; char *start, *end, temp; len = str_len (st); start = st; end = st; for (i = 0; i <len - 1; i++) end++; for (i="0;" i < len 2; { temp="*end;" *end="*start;" *start="temp;" start++; end--; } int str_len (char *ptr) while ( *(ptr + i) !="" ) i++; return i; pre> <p> <strong>Output</strong> </p> <pre> Enter a string to be reversed: JAVATPOINT The reverse string is: TNIOPTAVAJ </pre> <h3>Program 7: Program to check whether the reverse string is a Palindrome</h3> <p>Consider a program to check whether the given string is a palindrome or not in the C programming language.</p> <p> <strong>Program7.c</strong> </p> <pre> #include #include int main () { // declare variables char str1[30]; int i, len, flag = 0; printf (&apos; Enter a string: &apos;); scanf (&apos;%s&apos;, str1); len = strlen( str1 ); // get the string length for ( i = 0; i <len; i++) { str1[i] is not equal to str1[len-i-1] if (str1[i] !="str1[len" - i 1]) flag="1;" break; exit from statement } (flag) printf (\' %s a palindrome string\', str1); else palindrome\', return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a string: madam madam is a palindrome string. </pre> <hr></len;></pre></len></pre></j)></pre></right;></pre></len>

Programa 4: imprimeix el revers d'una cadena utilitzant el bucle for

Considerem un exemple per imprimir el revers d'una cadena utilitzant el bucle for en llenguatge de programació C.

Programa 4.c

 #include #include #include void main() { char str[50], temp; // define the size of str[] array int i, left, right, len; printf (&apos; 
 Display a reverse string in the C: 
&apos;); printf (&apos; ----------------------- &apos;); printf (&apos; 
 Enter a string to reverse order: &apos;); scanf( &apos;%s&apos;, &amp;str); len = strlen(str); // get the length of the string left = 0; // set left index at 0 right = len - 1; // set right index len - 1 // use for loop to store the reverse string for (i = left; i <right; i++) { temp="str[i];" str[i]="str[right];" str[right]="temp;" right--; } printf (\' the reverse of original string is: %s \', str); getch(); < pre> <p> <strong>Output</strong> </p> <pre> Display a reverse string in the C: ----------------------- Enter a string to reverse order: APPLE The reverse of the original string is: ELPPA </pre> <h3>Program 5: Print the reverse of a string using while loop</h3> <p>Let&apos;s consider an example to print the reverse of a string using while loop in C programming language.</p> <p> <strong>Program5.c</strong> </p> <pre> #include #include int main() { char str1[50], temp; // declare and initialize the size of string array. int i = 0, j =0; printf (&apos; Enter a string to be reversed: &apos;); scanf( &apos;%s&apos;, str1); j = strlen (str1) - 1; // get the length of the string // use while loop to define the condition while ( i <j) 1 { use temp variable to store the characters of str1 str1[j]="str1[i];" str1[i]="temp;" i++; i incremented by j--; j is decremented } printf (\' reversed string: %s\', str1); return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a string to be reversed: JAVATPOINT The reversed of the string: TNIOPTAVAJ </pre> <h3>Program 6: Print the reverse of a string using pointers</h3> <p>Let&apos;s consider an example to print the reverse of a string using pointers in the C programming language.</p> <p> <strong>Program6.c</strong> </p> <pre> #include #include int str_len( char *st); void revstr( char *st); int main() { char st[50]; printf (&apos; Enter a string to be reversed: &apos;); scanf( &apos;%s&apos;, st); revstr(st); printf (&apos; The reverse string is: %s&apos;, st); return 0; } void revstr (char *st) { int len, i; char *start, *end, temp; len = str_len (st); start = st; end = st; for (i = 0; i <len - 1; i++) end++; for (i="0;" i < len 2; { temp="*end;" *end="*start;" *start="temp;" start++; end--; } int str_len (char *ptr) while ( *(ptr + i) !="" ) i++; return i; pre> <p> <strong>Output</strong> </p> <pre> Enter a string to be reversed: JAVATPOINT The reverse string is: TNIOPTAVAJ </pre> <h3>Program 7: Program to check whether the reverse string is a Palindrome</h3> <p>Consider a program to check whether the given string is a palindrome or not in the C programming language.</p> <p> <strong>Program7.c</strong> </p> <pre> #include #include int main () { // declare variables char str1[30]; int i, len, flag = 0; printf (&apos; Enter a string: &apos;); scanf (&apos;%s&apos;, str1); len = strlen( str1 ); // get the string length for ( i = 0; i <len; i++) { str1[i] is not equal to str1[len-i-1] if (str1[i] !="str1[len" - i 1]) flag="1;" break; exit from statement } (flag) printf (\' %s a palindrome string\', str1); else palindrome\', return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a string: madam madam is a palindrome string. </pre> <hr></len;></pre></len></pre></j)></pre></right;>

Programa 5: imprimeix el revers d'una cadena utilitzant el bucle while

Considerem un exemple per imprimir el revers d'una cadena utilitzant el bucle while en llenguatge de programació C.

Programa 5.c

 #include #include int main() { char str1[50], temp; // declare and initialize the size of string array. int i = 0, j =0; printf (&apos; Enter a string to be reversed: &apos;); scanf( &apos;%s&apos;, str1); j = strlen (str1) - 1; // get the length of the string // use while loop to define the condition while ( i <j) 1 { use temp variable to store the characters of str1 str1[j]="str1[i];" str1[i]="temp;" i++; i incremented by j--; j is decremented } printf (\' reversed string: %s\', str1); return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a string to be reversed: JAVATPOINT The reversed of the string: TNIOPTAVAJ </pre> <h3>Program 6: Print the reverse of a string using pointers</h3> <p>Let&apos;s consider an example to print the reverse of a string using pointers in the C programming language.</p> <p> <strong>Program6.c</strong> </p> <pre> #include #include int str_len( char *st); void revstr( char *st); int main() { char st[50]; printf (&apos; Enter a string to be reversed: &apos;); scanf( &apos;%s&apos;, st); revstr(st); printf (&apos; The reverse string is: %s&apos;, st); return 0; } void revstr (char *st) { int len, i; char *start, *end, temp; len = str_len (st); start = st; end = st; for (i = 0; i <len - 1; i++) end++; for (i="0;" i < len 2; { temp="*end;" *end="*start;" *start="temp;" start++; end--; } int str_len (char *ptr) while ( *(ptr + i) !="" ) i++; return i; pre> <p> <strong>Output</strong> </p> <pre> Enter a string to be reversed: JAVATPOINT The reverse string is: TNIOPTAVAJ </pre> <h3>Program 7: Program to check whether the reverse string is a Palindrome</h3> <p>Consider a program to check whether the given string is a palindrome or not in the C programming language.</p> <p> <strong>Program7.c</strong> </p> <pre> #include #include int main () { // declare variables char str1[30]; int i, len, flag = 0; printf (&apos; Enter a string: &apos;); scanf (&apos;%s&apos;, str1); len = strlen( str1 ); // get the string length for ( i = 0; i <len; i++) { str1[i] is not equal to str1[len-i-1] if (str1[i] !="str1[len" - i 1]) flag="1;" break; exit from statement } (flag) printf (\' %s a palindrome string\', str1); else palindrome\', return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a string: madam madam is a palindrome string. </pre> <hr></len;></pre></len></pre></j)>

Programa 6: imprimeix el revers d'una cadena amb punters

Considerem un exemple per imprimir el revers d'una cadena utilitzant punters en el llenguatge de programació C.

on és la configuració del navegador

Programa 6.c

 #include #include int str_len( char *st); void revstr( char *st); int main() { char st[50]; printf (&apos; Enter a string to be reversed: &apos;); scanf( &apos;%s&apos;, st); revstr(st); printf (&apos; The reverse string is: %s&apos;, st); return 0; } void revstr (char *st) { int len, i; char *start, *end, temp; len = str_len (st); start = st; end = st; for (i = 0; i <len - 1; i++) end++; for (i="0;" i < len 2; { temp="*end;" *end="*start;" *start="temp;" start++; end--; } int str_len (char *ptr) while ( *(ptr + i) !="" ) i++; return i; pre> <p> <strong>Output</strong> </p> <pre> Enter a string to be reversed: JAVATPOINT The reverse string is: TNIOPTAVAJ </pre> <h3>Program 7: Program to check whether the reverse string is a Palindrome</h3> <p>Consider a program to check whether the given string is a palindrome or not in the C programming language.</p> <p> <strong>Program7.c</strong> </p> <pre> #include #include int main () { // declare variables char str1[30]; int i, len, flag = 0; printf (&apos; Enter a string: &apos;); scanf (&apos;%s&apos;, str1); len = strlen( str1 ); // get the string length for ( i = 0; i <len; i++) { str1[i] is not equal to str1[len-i-1] if (str1[i] !="str1[len" - i 1]) flag="1;" break; exit from statement } (flag) printf (\' %s a palindrome string\', str1); else palindrome\', return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a string: madam madam is a palindrome string. </pre> <hr></len;></pre></len>

Programa 7: Programa per comprovar si la cadena inversa és un palíndrom

Considereu un programa per comprovar si la cadena donada és un palíndrom o no en el llenguatge de programació C.

Programa 7.c

 #include #include int main () { // declare variables char str1[30]; int i, len, flag = 0; printf (&apos; Enter a string: &apos;); scanf (&apos;%s&apos;, str1); len = strlen( str1 ); // get the string length for ( i = 0; i <len; i++) { str1[i] is not equal to str1[len-i-1] if (str1[i] !="str1[len" - i 1]) flag="1;" break; exit from statement } (flag) printf (\\' %s a palindrome string\\', str1); else palindrome\\', return 0; < pre> <p> <strong>Output</strong> </p> <pre> Enter a string: madam madam is a palindrome string. </pre> <hr></len;>