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