关于#c语言#的问题:为啥puts会自动换行

为啥会自动换行

#include 
void main()
{
char str[ ]= "abc", *ps=str;
while(*ps)
ps++;
for(ps--; ps-str>=0; ps--)
puts(ps);
}

为啥结果是
c
bc
abc
而不是cbcabc啊,程序中也没有\n啊

puts自带换行。不想换行就用printf("%s",ps);

哈喽你好呀!
其实这就是puts的特性所构成的,因为puts的作用是输出一行,不论输入的字符串的内容是什么,都会在最后加上'\n'之后再输出。

  • 以下回答由chatgpt基于相关博客总结生成:

    答案:

    puts函数在输出完要输出的内容后,会自动在末尾添加换行符"\n",所以即使代码中没有手动添加换行符,输出结果也会自动换行。

    要避免输出结果自动换行,可以使用printf函数代替puts函数,并手动控制换行,例如使用"%s"格式控制符进行字符串输出,然后在需要换行的地方添加"\n"。示例代码如下:

    #include <stdio.h>
    int main() {
        char str[] = "cbcabc";
        printf("%s%s%s", "c", "bc", "abc\n"); //手动加上换行符
        return 0;
    }