c - 反转字符串-运行时错误

标签 c string

我是 C 编程新手,这是我第一次尝试反转字符串。我输入了以下代码,但出现运行时错误。谁能告诉我我哪里错了,这样我就不会再犯同样的错误了。

#include <stdio.h>
# define size 10

int main()
{
    int i=0; int a=0;
    char s[size];
    printf("enter your word");
    scanf("%s", s);
    a= strlen(s);
    for(i=a-1;i>=0;--i)
    {printf("%s", s[i]);}

    return 0;
}

非常感谢。

最佳答案

您通过将错误类型的数据传递给printf()来调用未定义的行为 :%s呼吁char* ,但是s[i]类型为char 。使用%c打印一个字符。

另外不要忘记添加 #include <string.h>为了使用strlen() .

关于c - 反转字符串-运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37051157/

相关文章:

c++ - 将超过 64 位的数组转换为 base-10 字符串

arrays - 将字符串从数组传递给函数的类型不匹配错误(在 VBA 中)

java - 在 JavaScript RegExp 中复制 Java 的 "Pattern.quote"的功能

带有结构的 C 数组 - 不能更改变量

c++ - 这个错误可能是什么? ANSI C 文件

c - 当指针有偏移量时,realloc 崩溃

c - 结构();我做的不工作

c - 我无法检索主函数中的更新值

c++ - 对 C++ 字符串的字符进行排序

c - 在适用于 ARM Cortex M4f 的 Code Composer studio 中将堆栈指针的值保存在 C 变量中