Possible Duplicate:
Reversing a string in C
我目前正在为一个项目从 C++ 切换到 C 编程,并且我没有对 Char 数组作为字符串做太多事情。我需要一个函数来读取指向 char 数组的指针并将其反转。我用 C++ 编写了这个,使用字符串函数非常容易,但我对 C 中是否有函数或其他东西是执行此操作的最佳方法感到有点困惑。谢谢,我不一定要找人来完全完成代码,而是要为我指明正确的方向。如果是简单的一行,请随意,但不要做任何让您感到不舒服的事情。
#include<stdio.h>
#include<string.h>
void reverseString(char *myString)
{
//reverse string here
}
int main(void)
{
char myString[] = "This is my string!";
reverseString(myString);
return 0;
}
最简单的方法:逐个字符循环字符串,并将每个字符以相反的顺序插入到另一个字符数组中。
或者试试这个:
2)
void reverse_string(char str[])
{
char c;
char *p, *q;
p = str;
if (!p)
return;
q = p + 1;
if (*q == '\0')
return;
c = *p;
reverse_string(q);
while (*q != '\0') {
*p = *q;
p++;
q++;
}
*p = c;
return;
}
3)
if( strlen( str ) > 0 ) {
char* first = &str[ 0 ];
char* last = &str[ strlen( str ) - 1 ];
while( first < last ) {
char tmp = *first;
*first = *last;
*last = tmp;
++first;
--last;
4)
char* strrev( char* s )
{
char c;
char* s0 = s - 1;
char* s1 = s;
/* Find the end of the string */
while (*s1) ++s1;
/* Reverse it */
while (s1-- > ++s0)
{
c = *s0;
*s0 = *s1;
*s1 = c;
}
return s;
}