c - 反转字符串结构中的每个字符串

标签 c recursion structure

我必须编写一个程序,该程序将获取文本文件的内容并使用递归反转每一行。例如这个文件:

abc def ghi
jkl mno pqr

最终应该是:

ihg fed cba
rpq onm lkj

我认为最好的方法是将内容放入链接列表中,然后分别反转每一行。链接列表部分工作得很好,除了我不太确定如何执行反转部分。这是我到目前为止所拥有的:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#define NODE struct list

void reverse(void);

struct list {
        char array[20];
        struct list *next;
};


int main(void)
{
        reverse();
        return 0;
}


void reverse(void)
{
        NODE *p;
        p = head;

        while (p != NULL)
        {
                reverse(p->array + sizeof(p->array));
                printf("%d", p->array);
        }

        return;
}

最佳答案

我想,类似的事情。如您的示例所示,数组的大小被硬编码为 10。使用递归:

void reverse( struct list *p )
{
  if( p )
  {
    int i;
    reverse(p->next);
    for (i=0;i<10;++i)
    {
      char tmp=p->array[i];
      p->array[i]=p->array[i+10];
      p->array[i+10]=tmp;
    }
    p->array[19]=0; // to ensure 0 byte at string end
  }
}

关于c - 反转字符串结构中的每个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9495752/

相关文章:

c - 不知道为什么 for 循环不打印,已经检查了很多次格式是正确的

c - 如何在 MIPS 汇编中初始化一个巨大的数组?

c - Balance() 函数无法正常工作

templates - D中的递归模板问题

c - 左值 : array and structure

c - 在函数内分配内存后使用双指针

javascript - 递归总是能提高性能吗?

javascript - 递归函数无法正常工作

c++ - 所有按钮都应该包含对 MVC 代码 (C++) 中的 Controller 的引用吗?

c - 将位图文件读入结构