c - 反转输入字符串

标签 c

我想反转输入的字符串,我使用指向最后一个字符的指针并在指针地址减少的同时打印字符串。但是,我无法获得整个字符串。谁能告诉我哪里出了问题?

//Reverse a charater string
#include<stdio.h>
int main()
{
  char a[50];
  int l;
  int *p;
  printf("Please input a character string:\n");
  scanf("%s",a);
  l = strlen(a);
  for (p = &a[l-1]; p >= a; p--)
   {
     printf("%c",*p);
    }
  printf("\n");
  return 0;
}

Output:
Please input a character string:
asdfasdfasdf
fff

最佳答案

您已将 p 声明为整型指针。它应该是一个字符指针。

int *p;

应该是

char *p;

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

相关文章:

c - 从数组进行简单的 unsigned long long 转换

c - PETSc 未定义引用

c - 在 fscanf() 中使用 []

c - 使用函数指针移植通用 C 驱动程序

c - 使用 C 来自动化命令行实用程序的选项有哪些?

c - while (getchar () != '\n' );

这可能是对齐内存问题吗?

无需访问库即可将整数转换为字符串

c - 当我尝试使用函数中通过引用传递的预分配矩阵读取值时出现段错误

c++ - 使用用于 C++ 代码的 header 编译 C 代码时未知类型名称 char16_t