1.scanf
charstr[10];
scanf("%s",str);
123 adw
其实只输入了 123
1) 不读入空格和回车还有tap键,从空格处结束
2) 输入字符串长度超过字符数组元素个数不报错,只是不读入
3) 当输入项为字符指针时,指针必须已指向确定的有足够空间的连续存储单元
4) 当为数组元素地址时,从此元素地址开始存放
printf("%s",地址值)
输出时遇到第一个'\0'为止
2.gets和puts函数
开头必须stdio.h头文件
gets输入时包括空格符,遇到回车结束
puts遇到第一个‘\0’结束,自动加入换行符
3.cin
使用空白(空格,制表符和换行符)来定字符串的界的
4.getline()
读入整行数据,它使用回车键输入的换行符来确定输入结尾。
调用方法: cin.getline(str, len);
第一个参数str是用来存储输入行的数组名称,第二个参数len是要读取的字符数。
string型:getline(cin, str)
5.get()
调用方法:cin.get(str, len);
getline将丢弃换行符,而get()将换行符保留在输入序列里,但是字符串中并没有换行符。两者都是读取一行输入,直至换行符。然后,getline将换行符丢弃,而get()将换行符保留在输入序列里,使用cin.get()输入多行数据时,中间可以使用get()消除换行符。
例题演示:标题统计
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main(){
int count=0,i;
string a;
getline(cin,a);//输入带空格、tap的字符串
for(i=0;i<a.length();i++)//a.length()统计字符串长度
if(a[i]!=' '&&a[i]!='\n'&&a[i]!='\t')//当空格、换行、tap键盘时不统计
count++;
cout<<count;
return 0;
}