为啥会自动换行
#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'之后再输出。
答案:
puts函数在输出完要输出的内容后,会自动在末尾添加换行符"\n",所以即使代码中没有手动添加换行符,输出结果也会自动换行。
要避免输出结果自动换行,可以使用printf函数代替puts函数,并手动控制换行,例如使用"%s"格式控制符进行字符串输出,然后在需要换行的地方添加"\n"。示例代码如下:
#include <stdio.h>
int main() {
char str[] = "cbcabc";
printf("%s%s%s", "c", "bc", "abc\n"); //手动加上换行符
return 0;
}