扭转一系列字符串

时间:2013-02-20 21:26:57

标签: c

我遇到一个问题,我的系列字符串不会按照我想要的方式打印出来。它只打印出最后一个字符串并反转最后一个字符串,但不会反转之前的任何字符串。有人可以帮帮我吗?

#include <stdio.h>
#include <string.h>

void reverse(char strings[80], int start, int end);
int main (void){

  char strings[80];

  printf("\tEnter a string to reverse: \n");
  while( scanf ("%s", strings) !=EOF);

  reverse(strings, 0, strlen(strings)-1);
  printf("\tThe reverse strings: \n%s\n",strings);

return 0;}
void reverse(char strings[80], int start, int end)
{
  char A;
  if (start >= end)
  return;

  A = *(strings+start);
  *(strings+start) = *(strings+end);
  *(strings+end) = A;

  reverse (strings, ++start, --end);
}

1 个答案:

答案 0 :(得分:1)

你对reverse()和printf()的调用不在while循环中,所以它们只被调用一次(对于最后读取的字符串)。

应该是

while (scanf ("%s", strings) != EOF)
{
    reverse(strings, 0, strlen(strings)-1);
    printf("\tThe reverse strings: \n%s\n",strings);
}