c++ - C函数反转char数组字符串

标签 c++ c arrays string char

<分区>

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;
  }

关于c++ - C函数反转char数组字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13795674/

相关文章:

c++ - 在 C++ 中使用嵌套数组处理 MONGO 记录

php - 在 ArrayObject 中循环和取消设置时 foreach 出现意外行为。一个项目被忽略

c++ - 将 mysql_row 转换为整数

c++ - 我应该公开 protected std::vector 吗?

c++ - caml_hash_varian返回的值在什么范围?

c - 当我尝试运行它时,程序崩溃了,我不知道为什么

c++ - 在 Doxygen 上逃逸,# 到底是什么意思?

c++ - 数组作为映射键

c - 如何将特定的头文件添加到索引中,就像它包含在 eclipse cdt 中一样?

c - 如何将文件的内容存储到数组中(C)