logo

C で文字列を反転する

このトピックでは、C プログラミング言語で文字列を反転するいくつかの方法について説明します。 文字列を反転する 指定された文字列の順序を反転または変更して、文字列の最後の文字が文字列の最初の文字になるようにする手法です。さらに、元の文字列を反転することで、指定された文字列の回文を確認することもできます。

たとえば、文字列「」を入力します。 りんご ' を選択し、逆のアルゴリズムを使用します。逆アルゴリズムは文字列 ' を返します。 エルパ ' これは元の文字列と完全に逆になります。

C で文字列を反転する

C で文字列の逆を見つけるさまざまな方法

C プログラミング言語で文字列の逆を検索するさまざまな方法を次に示します。

  1. strrev() 関数を使用して文字列を反転する
  2. ライブラリ関数を使用せずに文字列を反転する
  3. 再帰関数を使用して文字列を反転する
  4. for ループを使用して文字列を反転する
  5. while ループを使用して文字列を反転する
  6. ポインタを使用して文字列を反転する
  7. 文字列を反転して回文をチェックする

プログラム 1: strrev() 関数を使用して文字列の逆を出力する

strrev() 関数を使用して文字列の逆を出力する例を考えてみましょう。

プログラム1.c

cpp が等しい
 #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; } 

出力

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

プログラム 2: ライブラリ関数を使用せずに文字列の逆を出力する

ユーザー定義関数を使用して文字列を反転して出力する例を考えてみましょう。

プログラム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>

プログラム 3: 再帰関数を使用して文字列の逆を出力する

再帰関数を使用して文字列の逆を出力する例を考えてみましょう。

再帰関数: 再帰関数とは、ループ文を使わずに同じ関数を連続して呼び出す関数です。

バーティ・ジャ

プログラム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>

プログラム 4: for ループを使用して文字列の逆を出力する

C プログラミング言語の for ループを使用して文字列の逆を出力する例を考えてみましょう。

プログラム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;>

プログラム 5: while ループを使用して文字列の逆を出力する

C プログラミング言語の while ループを使用して文字列の逆を出力する例を考えてみましょう。

プログラム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)>

プログラム 6: ポインターを使用して文字列の逆を出力する

C プログラミング言語でポインターを使用して文字列の逆を出力する例を考えてみましょう。

プログラム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>

プログラム 7: 逆文字列が回文かどうかを確認するプログラム

C プログラミング言語で、指定された文字列が回文であるかどうかをチェックするプログラムを考えてみましょう。

小さじサイズ

プログラム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;>