输入输出字符和字符串总结

一.scanf函数输入字符和字符串

  1. scanf输入单个字符:
char letter;
scanf("%c",&letter); 
  1. scanf输入字符串:
    给数值型数组赋值时,只能用for循环一个一个的赋值,但是字符数组赋值时可以直接赋值,不需要使用循环,系统会在最后添加结束标志符‘\0’.
char a[30];
scanf("%s",a); //可以有&也可以没有&
  • 注意 如果输入的字符串中带空格,系统将空格作为输入字符串之间的分隔符,只要遇到空格,系统就会认为当前的字符串已经结束
#include<stdio.h>
int main (void) {
  char str1[30];
  scanf("%s", str1);
  printf("%s\n", str1);
  return 0;
}

输入:hello world
输出:hello

  • 解决办法:
#include<stdio.h>
int main (void) {
   char str1[30], str2[30];
   scanf("%s%s",str1, str2);
   printf("%s %s\n", str1, str2);
   return 0;
}

输入:hello world
输出:hello world

二.字符串数组+初始化

char s1[] = "array";
char s2[6] = "array";  //数组长度,末尾会自动添‘0’
printf("%s %c",s1,s2[2]); //输出  array,r

三.getchar输入单个字符

  • 相当于scanf("%c",c),scanf的简化版本
    getchar()用于读取用户从键盘输入的单个字符,它有一个整型的返回值,当读取错误的时候,返回-1,当读取正确的时候,它会返回用户从键盘输的第一个字符的ASCII码。并且存在缓冲区。
#include<stdio.h>
int main() {
    char c;
    c = getchar();
    printf("%c\n",c);
    return 0;
}
  • getche()没有缓冲区,不用按下回车,输入一个字符就会立即读取
#include<stdio.h>
#include<conin.h>
int main() {
    char c = getche();
    printf("c:%c\n",c);
    return 0;
}

示例:Ac:A
getche()位于<conin.h>头文件中,只能在windows下使用。

  • getch()也没有缓冲区,不用按下回车,输入一个字符就会立即读取,但是它没有回显。比如输入密码的时候。
#include<stdio.h>
#include<conin.h>
int main() {
    char c = getch();
    printf("c:%c\n",c);
    return 0;
}

输入A后,会立即读取,由于没有回显,所以直接输出内容为c:A
同样,getch()位于<conin.h>头文件中,只能在windows下使用。

四.gets()输入字符串

#include<stdio.h>
int main() {
    char str[30];
    gets(str);
    printf("%s\n",str);
    return 0;
}

示例:

we like hoilday
we like hoilday

get()和scanf的主要区别是:
get()认为空格也是字符串的一部分,只有遇见回车才认为字符串输入结束。所以,get()能读取带有空格的字符串,但是scanf()不能。

五.putchar输出字符

putchar()其输出可以是一个字符(用单引号引起来的),可以是0-127之间的一个整型数,也可以是char定义好的一个字符型常量。注意:当c为一个介于0~127(包括0及127)之间的十进制整型数时,它会被视为对应字符的ASCII代码,输出该ASCII代码对应的字符。
该函数以无符号 char 强制转换为 int 的形式返回写入的字符。
(1)当输出正确的时候,返回输出字符转换为的unsigned int 值;
(2)当输出错误的时候,返回 EOF(End of file)文件结束符
示例:

#include<stdio.h>
int main() {
    char a, b, c;
    a = 'P'; b = 'W'; c = 'T';
    putchar(a);putchar(b);putchar(c);putchar('\n');
    putchar(a);putchar('\n');
    putchar(b);putchar('\n');
    putchar(c);putchar('\n');
    return 0;
}

输出:
PWT
P
W
T

六 .puts()输出字符串

puts函数只能用来输出字符串,没有格式控制,里面可以是字符串变量(字符串数组名或字符串指针),运行更快。
相当于printf("%s\n",s);

#include<stdio.h>
int main(void)
{
      puts("Hello world");   //字符串,最后隐含带有'\0'字符
}

输出:Hello world

七.printf()输出字符串

printf输出格式有很多,不单单是字符串,这里主要讲字符串。

#include<stdio.h>
int main(void)
{
    printf("hello world") ;
    return 0;
}

输出:hello world

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值