战前准备03-字符串输入输出
字符串输入
gets():
feature:
- 从stdio流中读取 字符串,直至接受到换行符或EOF时停止,换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。结束时,不会在缓冲区中留下换行符。
- 可以接受空格符和制表符,不可接受换行符(会自动转化为\n)
- 会自动在末尾补上’\0’(由换行符转化)
- 不安全,在部分编译器中被弃用
example:
#include<iostream>
#include<string.h>
using namespace std;
int main(){char a[10];gets(a);for(int i=0;i<strlen(a);++i){cout<<i<<":"<<(int)a[i]<<endl;}return 0;
}
scanf():
feature():
- 遇见空格、回车、制表符停止,会读取空格、回车、制表符前面的内容,将这三个字符留在缓冲区。
- 会自动在末尾补上’\0’
- 若空格、回车、制表符为首字符,则会读取后丢弃这三个字符,见example1
- 利用上面的机制,可以连续读取多个字符串,见example2
- 若遇到gets()无法使用,且有读取空格的需求时,可以使用scanf("%[^\n]", str)。
example1:
#include<iostream>
#include<string.h>
using namespace std;
int main(){char a[10];scanf("%s",a);for(int i=0;i<strlen(a);++i){cout<<i<<":"<<(int)a[i]<<endl;}char b;while(b = getchar()){cout<<(int)b<<endl; }return 0;
}
example2:
#include<iostream>
#include<string.h>
using namespace std;
int main(){char a[10];char b[10];scanf("%s%s",a,b);for(int i=0;i<strlen(a);++i){cout<<i<<":"<<(int)a[i]<<endl;}for(int i=0;i<strlen(b);++i){cout<<i<<":"<<(int)b[i]<<endl;}return 0;
}
cin:
feature:
- 与scanf()一致
getline(c++):
feature:
- 由两种使用方法:
- 方法一:istream &getline( char *buffer, streamsize num, char delim );
- 方法二:istream &getline( char *buffer, streamsize num );
- 方法一中的delim为结束符,getline读取到delim时结束输入,并且会将delim丢弃,不会在缓冲区中留下delim结束符
- 方法二中的delim默认为’\n’,这种使用方法和gets()比较相似,唯独不会留下换行符在缓冲区中
- 在c++中,string类不需要在尾部加上’\0’,他有自己的类成员方法可以保存string变量的长度,但是实际测试中,getline()仍会在尾部加上’\0’
example1:
code:
#include<iostream>
#include<string.h>
using namespace std;
int main(){string s;s[1] = 'a';getline(cin,s);for(int i=0;i<s.length();++i){cout<<i<<":"<<(int)s[i]<<endl;}char a;cout<<"end:"<<(int)s[s.length()]<<endl;while(a = getchar()){cout<<(int)a<<endl;}
}
input:
a[回车]
output:
0:97
end:0
字符串输出
char数组
puts(s);
feature:
- 输出第一个字符到’\0’之间的所有字符
- 会自动换行
printf("%s",s);
feature:
- 输出第一个字符到’\0’之间的所有字符
cout>>s;
feature:
- 输出第一个字符到’\0’之间的所有字符
string类
cout<<s;
战前准备03-字符串输入输出相关推荐
- (mfc)将字符串中的字符逐个按行输出_C语言中字符串输入输出
在C语言中没有字符串类型,用字符数组处理字符串 定义 字符数组定义:char 数组名 [常量表达式][常量表达式] 一维字符数组,用于存储和处理一个字符串 . 二维字符数组,用于同时存储和处理多个字符 ...
- C++编程思想:文件 字符串 输入输出
文章目录 标准文件读取和写入 字符串输入输出 输入输出流的格式化 标准文件读取和写入 #include <iostream> #include <fstream> #inclu ...
- java简单的输入输出代码,java输入输出代码 java怎么样实现字符串输入输出问题...
java代码 控制台输入输出 如何将控制台输出的内容如上.在线等 就比如说 输出helloworld 怎么把这个接收到我的jsp字符串我可能不太理解楼主这么做的意义, System.out.print ...
- 7-279 字符串输入输出练习7-284 倒立的杨辉三角形
目录 7-279 字符串输入输出练习 7-284 倒立的杨辉三角形 7-279 字符串输入输出练习 分数 10 全屏浏览题目 切换布局 作者 黄龙军 单位 绍兴文理学院 输入起始位置m.长度l及字符串 ...
- C++字符串输入输出转换
<sstream>输入输出控制类 istringstream类:用于执行C++风格的串流的输入操作 ostringstream类:用于执行C风格的串流的输出操作 strstream类:同时 ...
- C语言学习笔记09-数组、字符数组、字符串数组、二维数组(单字符输入输出putchar、getchar,字符串输入输出的scanf、gets、puts)
C语言数组 数组作用:可以用来保存很多记录(可以看成一种大容器).一些简单游戏也基本由数组实现,如游戏地图(二维数组)等等. 一个数组 划分 多个单元(下标区分) -存放-> 多个同类元 ...
- c语言中字符串输入输出的几种方式
在不引入string.h的前提下对字符串进行输入输出操作 1.输入 (1)使用scanf()输入字符串 %s是字符串格式符号,使用格式符%s,整体输入字符串 格式: scanf("%s&qu ...
- C语言字符串输入输出总结(一看就懂)
C语言中字符串的使用 java语言中直接就有string这个数据类型,而C语言中没有字符串数据类型,所以使用字符串的时候,难免会不是很方便,那么现在就总结一下C语言中字符串的使用! 1.字符串的声明 ...
- Shell - 简明Shell入门03 - 字符串(String)
示例脚本及注释 #!/bin/bashstr="Shell" str2="Hello $str !" str3="Hello ${str} !&quo ...
- python 03 字符串详解
1.制表符 \t str.expandtabs(20) 可相当于表格 2.def isalpha(self) 判断是否值包含字母(汉字也为真),不包含数字 3.def isdecimal(se ...
最新文章
- OpenNESS 的 5GC 融合实践
- win10系统下安装Navicat for MySql 连接出现错误解决方法
- wxWidgets:更新到最新版本的 wxWidgets
- Error(s) in loading state_dict for ResNet 问题解决
- 提高编程水平的一段必经之路,研读官方文档
- python 小说爬虫_Python实现的爬取小说爬虫功能示例
- php 走马灯轮播,Vue.js轮播图走马灯代码实例(全)
- linux进程管理相关概念
- 学习React基本渲染数据操作(-)
- input的onchange,onpropertychange,oninput事件 区别 及兼容各个浏览器使用方法
- 计算机四级-数据库工程师(数据库原理部分)
- 安利App介绍及下载(含二维码)
- Temami防辐射服小贴士
- Bug 20186278 - crfclust.bdb Becomes Huge Size Due to Sudden Retention Change (文档 ID 20186278.8)
- 【Deblurring by Realistic Blurring】阅读笔记
- 5G来临,我们该如何打造自己的家庭数据中心 - 基础篇
- 高校房产管理系统中周转房有哪些管理功能和范围
- OpenCV - 计算相机和视频的帧速率FPS
- 联想电脑使用“联想电脑管家”之后电脑频繁蓝屏
- mac 投影android手机屏幕尺寸,mac电脑投屏到投影仪的方法(苹果投屏到电脑屏幕图文教程详解)...