在不使用任何库的情况下反转字符串

时间:2018-07-11 11:09:27

标签: arrays string function pointers reverse

现在,我想实现一个函数来“反转”给定的字符串。我的想法不是交换,而是考虑在实现的函数中声明一个新数组,以吸收处于相反状态的新字符串。 这是代码:

#include <stdio.h>
#include <stdlib.h>

void reverseString( char string[  ], int size );

int main()
{
    char string[ 14 ] = "reverse me";
    printf( "The string is: %s\n", string );
    reverseString( string, 14 );
    return 0;
}

void reverseString( char string[  ], int size )
{
    int i, j;
    char newString[ size ];
    for( ( i = ( size ) ) & ( j = 0 ); ( i >= 0 ) && ( j < ( size ) ); i-- & j ++ )
    {
        newString[ j ] = string[ i ];
    }
    printf( "\nThe string reversed: %s\n", newString );
}

有人可以帮我弄个颠倒弦的想法吗?当我查看我的代码时,我是在想这个主意还是什么?!

2 个答案:

答案 0 :(得分:0)

    function reverseString(string) {
        var splitedString = string.split("");
        var reverseArray = splitedString.reverse(); 
        var joinArray = reverseArray.join("");
       
        return joinArray;
    }
     
    var newString = reverseString("hello");
    
    console.log(newString);

您期望这样的事情吗?

答案 1 :(得分:0)

一个字符串可以被称为一个字符数组,其末尾有一个空字符'\ 0'。如果字符串是“ Banana”,则实际上编译器会将其视为“ Banana \ 0”。在程序中处理字符串时,必须记住在创建的字符串后附加空字符。

这是相同的工作代码-

#include <stdio.h>

int main()
{
   char string[10] = "banana";
   char reverse[10];
   int start, end, length = 0;

   // Calculating string length - to be used when length is not already known

   /*while (string[length] != '\0')
      length++;*/

   //in this case

   length=10;

   end = length - 1;    /*this is done because indexing in arrays and strings starts 
                          at 0, not at 1...so string[0] gives first character of the 
                          string and string[size-1] gives the last character of the 
                          string*/

   for (start = 0; start < length; start++) 
   {
      reverse[start] = string[end];
      end--;
   }

   reverse[start] = '\0';   //here we add the null character to the end of the string

   printf("%s\n", reverse);

   return 0;
}

看看您的代码,您的想法是正确的。您只需要复习一些概念,例如字符串索引,字符串中的Null字符等。

使用库函数也可以完成同样的事情。