目录
一、getchar(),putchar()
getchar() 和 putchar() 是一对字符输入/输出函数,其中这两个函数名中都包含一个char,见名知意,可以理解为这两个函数操作的是一个字符,如果想要输入多个字符时就需要循环使用函数,这两个函数都定义在 <stdio.h> 头文件中。
getchar()不带任何参数,它用来接收用户在键盘上输入的字符,并把它返回为一个整数。例如,下面的语句读取一个字符的输入,并把该字符的值赋给变量ch:
int ch = getchar();
char ch = getchar();
putchar()用来输出参数对应的字符, 比如上面的代码中把输入的字符赋值给了ch,当想要再输出该字符时,可以用:
putchar(ch);
二、gets(), puts()
gets()和puts()函数可以用来接收多个字符的输入、输出,极大方便了程序的输入输出。
gets()接收键盘输入的字符串,直到遇见'\n'结束接收,不会存储 '\n',而是将其翻译为空字符 '\0',也可以理解为“吃掉回车”。
puts()打印输出参数的值,同时多打印一个换行符。
上方代码的第6行是puts()函数,此时右边输出字符串之后,你会发现又输出了一个回车!
三、scanf()和gets()的区别
scanf("%s",a):匹配连续一串的非空白字符,即遇到空格、tab或回车时结束;
gets(a):读到回车处结束,所以当句子中的单词由空格分开时可以用gets(a)输入
eg:写一函数,使输入的一个字符串按反序存放,在主函数中输入并输出反序后的字符串。
思路:1.需要有输入函数,这里的输入考虑如果有空格输入,用scanf函数是否可以?
2.结果要求输出反序的字符串,用到的输出函数是什么?
#include<stdio.h>
#include<string.h>
int exchange(char a[], char b[])
{
int i,len;
int j = 0;
len = strlen(a);
for(i = len - 1; i >= 0; i--){
b[j] = a[i];
j++;
}
b[j] = '\0';
return 0;
}
int main()
{
char a[100],b[100];
gets(a);
exchange(a,b);
puts(b);
return 0;
}
这里选用的输入函数是gets()。getchar()单词只能接收一个字符,而scanf()遇到输入的空格会自动退出,选用gets()是较为方便的。第十二行告诉b数组字符接收结束,并且puts()输出字符时要遇到'\0'也就是字符结束符时才结束。
四、总结
最近在重新温习C语言,在B站大学跟着鹏哥学C,会记录下来学习的知识点,若有哪里不对的地方,请大家评论区给我留言,有什么好的学习建议也可以留言哈,我会慢慢改进的!!!