读字符串

时间:2013-11-10 00:52:12

标签: c string

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

#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

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:-1)

要反转字符串,您可以使用代替交换

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

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