用gets与puts替换scanf与printf程序运行输出的结果是空的,为什么我不能用%s输出? - 爱问答

(爱问答)

用gets与puts替换scanf与printf程序运行输出的结果是空的,为什么我不能用%s输出?

#include<stdio.h>

#include<string.h>

int main()

{

char a[100],b[100],c[200];

    scanf("%s",a);

int i=0,j=0,k,x;

x=strlen(a);

for(j=0;j<x;j++)

{

for(i=0;i<x-j;i++)

{

if(a[i]>a[i+1])

{

k=a[i];

a[i]=a[i+1];

a[i+1]=k;

}

}

}

for(i=0;i<x;i++)

printf("%c",a[i]);

return 0;

}


1. 字符串输入函数gets()
调用gets()函数实现字符串的输入,其调用形式为:
gets(字符数组);
功能:从终端输入一个字符串(包括空格)赋给从字符数组起始的存储单元中,直到读入一个回车符为止。回车符读入后,不作为字符串的内容,系统将自动用’’替换,作为字符串结束的标志。如:
char c[20];
gets(c);
执行上面的语句,如果输入:How are you!<CR>
则将读入的12个字符依次存入到c[0]开始的存储单元中,并在其后自动加入一个字符串结束标志’’。
2.字符串输出函数puts()
调用puts()函数实现字符串的输出,其调用形式为:
puts(字符数组);
功能:将字符数组起始地址开始的一个字符串(以’’结束的字符序列)输出到终端,并将字符串结束标志’’转化成’ ’,自动输出一个换行符。如:
char c[ ]= "How are you!";
puts(c);
输出结果:
How
are
you!
printf和scanf是标准的C输出输入语句,在c语言标准的头文件stdio.h中定义。但在C++中,它们也能够被使用。
一、 printf输出
   printf语句的一般形式如下:
   printf( "格式字符串", 表达式, ... );
   该语句将"表达式"按照"格式字符串"给定的格式,显示在屏幕上。"格式字符串"包括文本字符、转义字符和格式说明符。
   如果我们只要打印简单的信息,并不需要包括"表达式",例如,要打印信息:"今天是星期二",可以使用下面的printf语句:
   printf("Today is Thursday");
   这个语句执行的结果为: Today is ThursdayPress any key to continue
   需要注意的是:输出的信息与系统提示连在一起。为了解决这个问题,可以使用转义字符,常用的转义字符参见2.4.3节的内容。
二、 scanf输入
   scanf语句的一般格式如下:
   scanf("格式字符串", 地址,…);
   scanf语句用"格式字符串"控制键盘读入的方式。"格式字符串"中一般只包括格式说明符,它们与printf语句中的一样,而"地址"是指变量在内存中的位置。我们看看下面的程序实例,它定义了一个int、float、char和char []变量,并使用了格式说明符:
#include <stdio.h>
#define MAX_word 20
void main()
{
  int x;
  float a;
  char ch, empty;
  char word[MAX_WORD];
 printf("Enter an integer: ");
  scanf("%d", &x);
 printf("Enter a float: ");
  scanf("%f", &a);
 fflush(stdin); // 清空输入缓冲区
  printf("Enter a character: ");
  scanf("%c", &ch);
 printf("Enter a string: ");
  scanf("%s", word);
 printf("Your integer was: %d ", x);
  printf("Your float was: %f ", a);
  printf("Your character was: %c ", ch);
  printf("Your word was: %s ", word);
}

下一篇:IDEA的variables中为啥没有变量值

上一篇:java通过外网调用服务,为什么公司项目用的ip和我用curlifconfig.me的不一样?

热门标签:
excel 网盘 破解 word dll
最新更新:
微软重新评估新的Outlook的使用时机 联想推出搭载联发科Helio G80芯片组的Tab M9平板 英特尔创新大赛时间确定! 微软Edge浏览器在稳定渠道中推出Workspaces功能 英伟达RTX4060TiGPU推出MaxSun动漫主题! 谷歌地图为用户提供了街景服务! GameSir 在T4 Kaleid中推出了一款出色的控制器! 微软开始在Windows 11 中测试其画图应用程序的新深色模式! LG电子推出全球首款无线OLED电视 英伟达人工智能芯片崭露头角! Steam Deck可以玩什么游戏-Steam Deck价格限时优惠 雷蛇推出CobraPro鼠标 Kindle电子阅读器可以访问谷歌商店吗 Windows10如何加入组策略 window10图片查看器怎么没有了?