0

我被要求取一个字符串并反转它,但我不知道该怎么做,所以我试着简单地读入字符串,然后重新打印出来。但我也遇到了麻烦。有人能指出我正确的方向吗?

#include <stdio.h>
#include <stdlib.h>

int main()
{
  char* word[64];
  printf("Input: ");
  fgets(*word, 256, stdin);
  printf("Reversed: %s\n", *word);

  return 0;
} //end main
4

2 回答 2

2

改变这个

  char* word[64];
  printf("Input: ");
  fscanf(stdin, "%s", *word);
  printf("Reversed: %s\n", *word);

  char word[64]; // remove the "*" so it's a char array, not array of char*
  printf("Input: "); // no change
  fscanf(stdin, "%s", word); // remove the * so you point to the array
  printf("Reversed: %s\n", word); // print out the string

你的 fgets 版本应该是

  char word[64];
  printf("Input: ");
  fgets(word, 64, stdin);
  printf("Reversed: %s\n", word);
于 2013-11-10T00:58:45.807 回答
-1

要反转字符串,您可以使用forswap

   for( i = 0 ; i < len/2 ; i++ )   
   {        
       tmp = s[i];
       s[i] = s[len-i];   
       s[len-] = tmp;         
   }

len是字符串的长度,可以使用函数 strlen 来计算。tmp是一个临时变量。

于 2013-11-10T02:45:55.977 回答