C\C++对于字符串输入处理

1、scanf

scanf以%s格式符读入字符串,会以空格为结束,也就是无法将空格读入。如果换成%c就可以读入,但是无法一次性读入一整行字符。

2、fgets

显然,fgets是一个读取带空格字符串的利器,简单方便。

3、getchar()

利用getchar(),getchar可以读入换行还有空格,有时候有些函数无法读入换行,比如cin,但是会留在缓冲区,就可以利用getchar去吸收。上面的代码可以实现循环读入带有空格的字符串,并且以换行结束字符串。

 4、getline

可以利用C++的getline读取带空格的字符串,并且自动以换行符为结束,但是不会读取换行符。而且可以利用强大的string容器。

总结:建议使用fgets函数以及getline函数去处理字符串,简单快捷。

原文地址:https://www.cnblogs.com/mist2019/p/10327764.html

时间: 2024-08-30 14:06:04

C\C++对于字符串输入处理的相关文章

C语言 realloc为什么要有返回值,realloc返回值详解/(解决任意长度字符串输入问题)。

在C语言操作中会用到大量的内存操作,其中很常用的一个是realloc(). 由字面意思可以知道,该函数的作用是用于重新分配内存. 使用方式如下: NewPtr=(数据类型*)realloc(OldPtr,MemSize) 其中OldPtr指向 待重新分配内存的指针. NewPtr指向 新分配空间的指针. MemSize为 分配后的空间大小. 该函数的使用涉及以下几个问题: 1.不同情况下的返回值 2.OldPtr指向的内存会不会自动释放 3.OldPtr和NewPtr分别是什么内容,他们有什么关

cin 字符串输入

cin 字符串输入 在学习c的时候,关于字符串的输入,记得有 scanf("%s",s); gets(s); 还有...o.o 好想没了... scanf("%s",s) 读取一行,但空格相当与一个'\n' 不读取. while(scanf("%s",s)){} : 支持 Ctrl+z 结束输入 即 此次运行表达式==0. gets(s) 读取一行,包括空格. cin>>s while(cin>>s): 也支持 Ctrl+

C++每次读取一行字符串输入(学习笔记) (转)

1. 面向行的输入:getline()getline()函数读取整行,它使用通过回车键输入的换行符来确定输入结尾. cin.getline(Arr, 20) // Arr为用来输入行的数组的名称:                      //20包括19个字符和1个空字符 2. 面向行的输入:get()与getline()的工作方式类似,接受参数相同,但get()并不再读取并丢弃换行符,而是将其留在输入队列中.可如下使用: cin.get(Arr1, ArSize); // 读第一行cin.g

字符串输入专题

一.前言:如果想读入一个字符串,必须首先预留存储字符串的空间,然后才使用输入函数来获取合格字符串. 二.创建存储空间 要做的第一件事是建立一个空间用来存放字符串.不要指望计算机读取字符串时会自动计算字符串长度,并且为字符串分配空间.所以,字符串的空间必须人为分配:最简单的办法就是在声明中指出数组的大小. 例1: char *name; scanf("%s",name);//错误 例2:   char name[80]; scanf("%s",name);//正确 例

C字符串输入输出函数

下面就几个常用的字符串输入输出函数做个小小的总结TAT 使用时添加头文件:#include<stdio.h>. scanf("格式控制字符串",变量地址列表):(printf),每次只能接收一个单词,无法接收整行数据 gets(字符数组名或指针):读取一整行的输入,以回车结束读取,如果用来保存接收到数据的空间不够大就会导致缓冲区溢出,覆盖缓冲区之后的数据,在C11中被废弃.gets()在接收数据时,输入换行符时会丢弃,不会被读取,没有换行的效果,读取的换行符被转换为'\0'

用指针对字符串输入/输出

#include<iostream> using namespace std; int main(void) { char *s=new char[80]; cout<<"输入一个字符串: "; cin>>s; getchar(); cout<<"输入的字符串是:"; cout<<s; getchar(); delete []s; s=NULL; } s是一个字符型指针变量,通过new运算符申请一个动态数组

把字符串输入到表格里

在格子中输出字符串 在格子中显示 用户输入一个字符串,把它显示在格子中. 要求: 水平左对齐,垂直顶端对齐. 格子的宽度和高度是先定好的,比如:30 x 7 如果字符串太长,则需要折行显示. 如果实在太长,到最后一行都装不下,则截断它,使之不破坏格子边框. 可能的情景: 情景1 情景2 我们可以定义一个大的字符型数组 char[][] cc,该数组的范围就是表格的大小. 先把数组的四个角赋值为 '+',第一行最后一行的其他位置赋值为 '-',第一列和最后一列赋值为 '|'.这样,表格的框架就打好

标C编程笔记day07 常用标准库介绍、字符串输入处理、字符指针的使用

常用标准库: assert.h:断言,包含assert宏.可以进行自我检查 ctype.h:字符处理,字符的分类,大小转换 errno.h:错误信息处理 float.h:浮点数特性 limits.h:整数的大小,提供了描述整数类型的宏 lcale.h:本地化 math.h:数学函数 setjmp.h:跳转 signal.h:信号处理 stdarg.h:可变长参数处理 stddef.h:经常使用的类型的定义 stdio.h:输入输出 string.h:字符串处理 stdlib.h:其他函数,字符串

C语言 realloc为什么要有返回值,realloc返回值具体解释/(解决随意长度字符串输入问题)。

在C语言操作中会用到大量的内存操作,当中非经常常使用的一个是realloc(). 由字面意思能够知道,该函数的作用是用于又一次分配内存. 使用方式例如以下: NewPtr=(数据类型*)realloc(OldPtr,MemSize) 当中OldPtr指向 待又一次分配内存的指针. NewPtr指向 新分配空间的指针. MemSize为 分配后的空间大小. 该函数的使用涉及下面几个问题: 1.不同情况下的返回值 2.OldPtr指向的内存会不会自己主动释放 3.OldPtr和NewPtr各自是什么

字符串与字符串函数 - 字符串 &amp; 字符串输入

一.表示字符串与字符串I/O [字符串 - 以空字符(\0)结尾的 char 类型数组] 1.字符串字面量(字符串常量) 用双引号括起来的内容称为字符串常量(string literal),也叫做字符串常量(string constant).双引号中的字符和编译器自动加入末尾的 \0 字符,都作为字符串存在内存中. ANSI C 标准规定,如果字符串常量之间没有间隔,或者用空白字符分隔,C 会将其视为串联起来的字符串常量. char chr1[50] = "Hello, and"&qu