现在,我想实现一个函数来“反转”给定的字符串。我的想法不是交换,而是考虑在实现的函数中声明一个新数组,以吸收处于相反状态的新字符串。 这是代码:
#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 );
}
有人可以帮我弄个颠倒弦的想法吗?当我查看我的代码时,我是在想这个主意还是什么?!
答案 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字符等。
使用库函数也可以完成同样的事情。