字符与字符串的输入输出

article/2025/11/5 20:48:43

字符、字符串的输入输出

  • scanf
  • printf
  • getchar
      • scanf与getchar的区别
  • putchar
  • gets
  • fgets
  • puts
  • cin与cout
  • getline
  • cin.getline

scanf

不接受空格,回车结束输入

  • scanf("%c",&a);
    读取标准输入流中的第一个字符,包括空格、换行符等,按回车键结束输入
  • scanf("% c",&a);
    屏蔽空白字符,读取标准输入流中的第一个非空白字符,按回车键结束输入
  • scanf("%s",a);
    读取一个字符串
    (1)遇到空白字符输入结束;
    (2)达到指定宽度【如:scanf("%10s",a);】,读取10个字符后输入结束。

printf

  • printf("%c",ch);
    输出一个字符,包括空格
  • printf("%s",str);
  • 输出字符串,遇’\0’结束

getchar

接受空格,回车结束输入,换行符会保存在缓冲区

  • 格式:char a=getchar();
    从键盘上读入一个字符,并带回显。(读取空白字符、换行符)

getchar()函数等待输入直到按回车才结束,回车前的所有输入字符都会逐个显示在屏幕上,但只有第一个字符作为函数的返回值。

函数原型:int getchar(void);
功能:从标准输入里读取下一个字符,相当于getc(stdin)。
返回值:返回类型为int型,为用户输入的ASCII码,出错返回-1。

scanf与getchar的区别

  • 读取方式不同
    scanf函数在读取字符时会跳过空格、制表符和换行符。
    getchar函数只能输入字符型,输入时遇到回车键才从缓冲区依次提取字符。

  • 结束输入的方式不同
    scanf函数以空格、Enter、Tab结束一次输入,不接受空格符。
    getchar函数以Enter结束输入(空格不结束),接受空格符。

  • 舍弃回车符的方法不同
    scanf函数以Space、Enter、Tab结束一次输入,不会舍弃最后的回车符(即回车符会残留在缓冲区中)。
    getchar函数以Enter结束输入时,接受空格,会舍弃最后的回车符。

putchar

接受空白字符、换行符

  • 格式:putchar(c);
    作用:输出一个字符,包括空格、换行符
    c可以是一个char型变量,可以是一个int型数(0<=c<=127),也可以是一个被单引号引起来的字符【如:putchar(‘A’)】

函数原型: int putchar(int ch);

getchar与putchar的使用
#include<stdio.h>
int main()
{/*----输入2(回车)----*/char a;  //接受‘2’a=getchar();putchar(a);char b;b=getchar();   //接受‘回车符’putchar(b);return 0;/*----输出2(回车)----*/
}

gets

接受空格,回车键结束输入

  • gets(字符指针);
    可以无限读取,直至接受到换行符或EOF时停止。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。

函数原型:char *gets(char *string);

PS:(1)因为gets不限制输入字符个数,因此容易造成程序崩溃,可使用fgets代替;(2)在GCC中使用gets(),编译无法通过;

fgets

  • fgets函数的调用形式:fgets(str,n,fp);
    fp是文件指针;str是存放在字符串的起始地址;n是一个int类型变量。
  • 函数的功能:从fp所指文件中读入n-1个字符放入str为起始地址的空间内;如果在未读满n-1个字符之时,已读到一个换行符或一个EOF(文件结束标志),则结束本次读操作,读入的字符串中最后包含读到的换行符。
  • 调用fgets函数时,最多只能读入n-1个字符。读入结束后,系统将自动在最后加’\0’,并以str作为函数值返回。
  • 函数原型:char *fgets(char *buf, int bufsize, FILE *stream);
    *buf: 字符型指针,指向将存储到的数据地址。
    bufsize: 整型数据,指明buf指向的字符数组的大小。
    *stream: 文件结构体指针,将要读取的文件流。

fgets读取指定大小的数据,避免gets函数从stdin接收字符串而不检查它所复制的缓存的容积导致的缓存溢出问题

puts

输出空格与换行符,遇到’\0’停止输出

  • 调用方式:puts(s) ;
    puts()显示字符串是自动在其后添加一个换行符,puts()遇到空字符(’\0’)时,输出停止,所以确保有空字符存在否则直到发现一个空字符为止 
    put函数的应用
#include <stdio.h>
#include <conio.h>//getch()的头文件
int main(void)
{int i;char str[20];for(i=0; i<10; i++){str[i]='a';}str[10]='\0';//若去掉上面一行代码,则会输出乱码//puts输出字符串时要遇到'\0’也就是字符结束符才停止puts(str);getch();return 0;
}

cin与cout

  • string a;
    cin>>a;
    cout<<a;

cin:输入字符串数组时,遇到空白字符结束输入(不能读入空格)。
cout:在输出字符串数组时,与puts()和printf+%s相同,遇到‘\0’停止输出。

getline

  • getline(cin,str);
    默认’\n’为输入结束终止符;可读取空格
  • getline(cin,str,delim);
    delim:一个char型数据,表示字符串输出结束终止符,即输入字符串遇到该字符时结束读取

cin.getline

  • cin.getline(ch2,6);
    默认结束符为’\n’,接受空格
    在不遇到结束符的情况下,最多可接收6-1=5个字符到ch2中
  • cin.getline(字符指针(char*),字符个数N(int),结束符(char));

cin.getline()函数用于处理数组字符串
函数原型:cin.getline(char * , int);第一个参数为一个char指针,第二个参数为数组字符串长度。


http://chatgpt.dhexx.cn/article/qjOJIttw.shtml

相关文章

python字符串输出和输入

一、字符串输出 回顾一下以前我们经常写的print()输出数据&#xff0c;输出的就是字符串。下面来看看具体点的代码操作。 代码如下&#xff1a; # 直接输出单引号或双引号或三引号格式字符串 print(hello world)# 2种格式化方法输出字符串 name Python自学网 print(欢迎来到%…

C语言字符串输入及输出的几种方式

1.字符串数组初始化 char s1[]"array"; //字符数组 char s2[6]"array"; //数组长度字符串长度1&#xff0c;因为字符串末尾会自动添‘\0‘ printf("%s,%c\n",s1,s2[2]); //array&#xff0c;r 2.字符串指针初始化 char *sp"pointer&quo…

C++的字符串输入方式

1、cin输入字符串 接收一个字符串&#xff0c;遇到空格和tab键结束接收&#xff0c;回车键表示输入结束&#xff1b;此外定义a[20]&#xff0c;则字符串长度要小于20&#xff0c;最后有个’\0’(否则输入超过20的连续字符串会报错)。 2、cin.get()输入字符 接收第一个字符并赋…

教程篇(7.0) 03. FortiGate安全 防火墙策略 ❀ Fortinet 网络安全专家 NSE 4

在本课中你将了解防火墙策略&#xff0c;以及如何应用它们来允许和拒绝通过FortiGate的流量。FortiGate的核心是一个防火墙&#xff0c;所以它对你的流量所做的几乎所有事情都与你的防火墙策略相关联。 本节课你将学习上图显示的主题。 通过展示识别防火墙策略的不同组成部分的…

Linux之防火墙策略

防火墙 防火墙&#xff08;Firewall&#xff09;&#xff0c;也称防护墙&#xff0c;是由Check Point创立者Gil Shwed于1993年发明并引入国际互联网&#xff08;US5606668&#xff08;A&#xff09;1993-12-15&#xff09;。防火墙是位于内部网和外部网之间的屏障&#xff0c;…

Linux下管理防火墙策略

目录 1. 防火墙管理工具的切换2. iptables的使用3.关于firewalld的域4.firewalld的基本管理命令5.firewalld的高级规则6.firewall中的NAT规则 防火墙是一组规则。当数据包进出受保护的网络区域时&#xff0c;进出内容&#xff08;特别是关于其来源、目标和使用的协议等信息&…

基础防火墙策略

基于NAT的防火墙策略 原理:通过配置防火墙策略,实现内网可以通过防火墙访问外网,外网不能主动访问内网,保证了局域网的安全性。 上图为本次实验的简略图。 准备工作:外网设为桥接模式,内网设为仅主机模式,防火墙两个模式都有。 步骤: 首先把所有的不必要的防火墙策略…

A模块练习-防火墙策略

说明&#xff1a;iptables 组件是一种工具&#xff0c;也称为用户空间&#xff08;userspace&#xff09;&#xff0c;它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本&#xff0c;否则需要下载该工具并安装使用它。 防火墙策…

Linux进阶(10)--防火墙策略优化

一.火墙介绍 从RHEL7以后&#xff0c;iptables服务的启动脚本已被忽略。请使用firewalld来取代iptables服务。 防火墙是一组规则。当数据包进出受保护的网络区域时&#xff0c;进出内容&#xff08;特别是关于其来源、目标和使用的协议等信息&#xff09;会根据防火墙规则进行检…

H3C 防火墙策略介绍

注意点&#xff1a; H3C防火墙有安全策略和域间策略&#xff0c;安全策略的优先级大于域间策略&#xff0c;会优先匹配安全策略&#xff0c;匹配不到才会匹配域间策略 域间策略&#xff1a;any to any的域间策略优先级低于具体的区域到具体的区域的域间策略 安全策略匹配顺序…

防火墙策略管理-firewalld

1.拓扑图 2.firewalld服务基础 1、Linux防火墙体系 系统服务&#xff1a;firewalld 管理工具&#xff1a;firewalld-cmd、firewalld-config 2、预设安全区域 ①、根据所在的网络场所区分&#xff0c;预设保护规则集 public&#xff1a;仅允许访问本机的sshd等少数几个服务 tru…

firewalld 防火墙策略

一 下面都是在public区 firewalld防火墙默认情况下(也就是public区域)是拒绝所有的&#xff0c;但是public区默认情况下ping和ssh服务都是放开的 [rootnode-1 ~]# firewall-cmd --list-all --zone public public (active)target: defaulticmp-block-inversion: nointerface…

win10 配置防火墙策略

说明 某些情况下&#xff0c;我们想在不关闭防火墙的情况下&#xff0c;开放一些特定的端口&#xff0c;使得特定的应用可以访问本机应用。我们可以配置自定义的防火墙策略来解决这个问题。 配置 控制面板 > 系统和安全 > Windows Defender 防火墙 高级设置 入站规…

防火墙策略管理小工具——网络安全

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、防火墙配置文件1. 地址集合2. 服务集合3. 规则集合 二、防火墙策略管理小工具的开发1. 主要功能2. 框架设计2.1 IP_Set对象2.2 Service对象2.3 Rule对象2.4…

飞塔防火墙策略设置

上周公司要求对一些电脑进行上网限制&#xff0c;只允许部分软件上网。 一、添加地址&#xff1a;在“策略与对象”--“地址”--“新建” 二、输入IP地址&#xff1a;&#xff08;最大陷阱&#xff0c;公司是使用无线上网&#xff0c;对飞塔而言&#xff0c;整个无线网是一个端…

防火墙策略配置

拓扑 任务一 c2 ping c1 &#xff0c;c1 not ping c2 首先我们要做的就是配置接口、网关、子网掩码&#xff0c;使得c1与c2可以互ping 如上图&#xff0c;我们先开启两个客户机&#xff0c;为方便测试。 命令 syssysname FWdis ip int br 查看状态int g0/0/1ip add 192.168.…

防火墙的策略

1.防火墙支持哪些NAT技术&#xff0c;主要的应用场景是什么&#xff1f; 首先&#xff0c;NAT的分类&#xff1a; 在内外网之间&#xff0c;流量进出的两个方向&#xff0c;而NAT技术是包含源地址转换和目标地址转换这两类&#xff0c;在通常的情况下&#xff0c;源地址转换是…

HCIA-Security -- 防火墙安全策略

防火墙安全基本原理 安全区域安全策略状态检测和会话机制ASPF技术防火墙在网络安全中的应用场景 一、防火墙安全基本原理 防火墙不仅只是一个“入口的屏障”&#xff0c;而应该是多个网络的接入控制点。所有进出内网的数据流都应该首先经过防火墙&#xff0c;形成一个信息进出…

防火墙策略

定义与原理&#xff1a; 防火墙的基本作用是保护特定网络免受“不信任”的网络的攻击&#xff0c;但是同时还必须允许两个网络之间可以 进行合法的通信。 安全策略是控制设备对流量转发以及对流量进行内容安全一体化检测的策略&#xff0c;作用就是对通过防火墙的 数据流进行检…

kaggle数据集下载

一、首先需要安装kaggle winR→cmd→pip install kaggle 问题&#xff1a;安装到哪来&#xff1f;都说在c盘。可是我找不到&#xff0c;可能因为之前担心c负荷更改路径了&#xff0c;再安装一下发现已经安装成功&#xff0c;且给出了安装路径。 二、注册 (1387条消息) 最新k…