字符串输入

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-字符串输入输出相关推荐

  1. (mfc)将字符串中的字符逐个按行输出_C语言中字符串输入输出

    在C语言中没有字符串类型,用字符数组处理字符串 定义 字符数组定义:char 数组名 [常量表达式][常量表达式] 一维字符数组,用于存储和处理一个字符串 . 二维字符数组,用于同时存储和处理多个字符 ...

  2. C++编程思想:文件 字符串 输入输出

    文章目录 标准文件读取和写入 字符串输入输出 输入输出流的格式化 标准文件读取和写入 #include <iostream> #include <fstream> #inclu ...

  3. java简单的输入输出代码,java输入输出代码 java怎么样实现字符串输入输出问题...

    java代码 控制台输入输出 如何将控制台输出的内容如上.在线等 就比如说 输出helloworld 怎么把这个接收到我的jsp字符串我可能不太理解楼主这么做的意义, System.out.print ...

  4. 7-279 字符串输入输出练习7-284 倒立的杨辉三角形

    目录 7-279 字符串输入输出练习 7-284 倒立的杨辉三角形 7-279 字符串输入输出练习 分数 10 全屏浏览题目 切换布局 作者 黄龙军 单位 绍兴文理学院 输入起始位置m.长度l及字符串 ...

  5. C++字符串输入输出转换

    <sstream>输入输出控制类 istringstream类:用于执行C++风格的串流的输入操作 ostringstream类:用于执行C风格的串流的输出操作 strstream类:同时 ...

  6. C语言学习笔记09-数组、字符数组、字符串数组、二维数组(单字符输入输出putchar、getchar,字符串输入输出的scanf、gets、puts)

    C语言数组   数组作用:可以用来保存很多记录(可以看成一种大容器).一些简单游戏也基本由数组实现,如游戏地图(二维数组)等等.   一个数组 划分 多个单元(下标区分) -存放-> 多个同类元 ...

  7. c语言中字符串输入输出的几种方式

    在不引入string.h的前提下对字符串进行输入输出操作 1.输入 (1)使用scanf()输入字符串 %s是字符串格式符号,使用格式符%s,整体输入字符串 格式: scanf("%s&qu ...

  8. C语言字符串输入输出总结(一看就懂)

    C语言中字符串的使用 java语言中直接就有string这个数据类型,而C语言中没有字符串数据类型,所以使用字符串的时候,难免会不是很方便,那么现在就总结一下C语言中字符串的使用! 1.字符串的声明 ...

  9. Shell - 简明Shell入门03 - 字符串(String)

    示例脚本及注释 #!/bin/bashstr="Shell" str2="Hello $str !" str3="Hello ${str} !&quo ...

  10. python 03 字符串详解

    1.制表符 \t str.expandtabs(20) 可相当于表格 2.def   isalpha(self) 判断是否值包含字母(汉字也为真),不包含数字 3.def   isdecimal(se ...

最新文章

  1. OpenNESS 的 5GC 融合实践
  2. win10系统下安装Navicat for MySql 连接出现错误解决方法
  3. wxWidgets:更新到最新版本的 wxWidgets
  4. Error(s) in loading state_dict for ResNet 问题解决
  5. 提高编程水平的一段必经之路,研读官方文档
  6. python 小说爬虫_Python实现的爬取小说爬虫功能示例
  7. php 走马灯轮播,Vue.js轮播图走马灯代码实例(全)
  8. linux进程管理相关概念
  9. 学习React基本渲染数据操作(-)
  10. input的onchange,onpropertychange,oninput事件 区别 及兼容各个浏览器使用方法
  11. 计算机四级-数据库工程师(数据库原理部分)
  12. 安利App介绍及下载(含二维码)
  13. Temami防辐射服小贴士
  14. Bug 20186278 - crfclust.bdb Becomes Huge Size Due to Sudden Retention Change (文档 ID 20186278.8)
  15. 【Deblurring by Realistic Blurring】阅读笔记
  16. 5G来临,我们该如何打造自己的家庭数据中心 - 基础篇
  17. 高校房产管理系统中周转房有哪些管理功能和范围
  18. OpenCV - 计算相机和视频的帧速率FPS
  19. 联想电脑使用“联想电脑管家”之后电脑频繁蓝屏
  20. mac 投影android手机屏幕尺寸,mac电脑投屏到投影仪的方法(苹果投屏到电脑屏幕图文教程详解)...

热门文章

  1. Java——聊聊JUC中的Future和FutureTask
  2. AutoGTP - 如何搭建本地的AI人工智能助手
  3. 构建基于SRU(Search and Retrieve via URL)协议的服务接口
  4. 5G R18在讲些什么?
  5. 四足机器人跳跃轨迹优化
  6. Xcode打包IOS应用上架最新流程
  7. 很喜欢的句子,丧的时候就来看看吧
  8. ChatGPT访谈录之一(关于rfid和NFC的方方面面)
  9. 思维导图整理大厂面试高频数组补充1: 最接近的三数之和 和 三数之和 的两个不同之处, 力扣16
  10. 听课记录高中计算机,高中听课记录.doc