字符串输入&操作

来源:互联网 发布:互联网it服务 编辑:程序博客网 时间:2024/05/21 18:34
字符串:
用引号括起来的字符串隐式地包括结尾的空字符(\0),如char ch[]=”BUBBLE”;
C++输入工具通过键盘输入,将字符串读入到char数组时,自动加上结尾的空字符。
Strlen()返回的是存储在数组中的字符串的长度(只计算可见的字符,不把空字符计算在内),sizeof()运算符指出整个数组的长度。


字符串的输入:
cin使用空白(空格,制表符,换行符)来确定字符串的结束位置。
cin.getline(),第一个参数是用来存储输入的数组的名称,第二个参数是要读取的字符个数,第三个为读取结束符。函数getline()是istream类的一个类方法(cin是一个istream对象)
getline(cin,str)中getline()不是类方法将cin作为参数指出去哪里查找输入,不需要指出字符串长度。
cin.get()不读取换行符,并将其留在输入队列中
cin.get(firstline,size)//read first line
cin.get()    //read newline
cin.get(secondline,size)//read second line


get与getline均返回一个cin对象
string类操作:
可以使用运算符+将两个对象合并起来,还可以使用运算符+=将字符串附加到string对象的末尾。Str3=str1+str2;str1+=str2;
使用strcpy将字符串复制到字符数组中,使用strcat将字符串附加到字符数组末尾:
Strcpy(charr1,charr2)//copy charr2 to charr1  将字符串复制到字符数组中

Strcat(charr1,charr2)//append contents of charr2 to charr1 将字符串附加到字符数组末尾


fgets():从文件结构体指针stream中读取数据,每次读取一行。读取的数据保存在buf指向的字符数组中,每次最多读取bufsize-1个字符(第bufsize个字符赋'\0'),如果文件中的该行,不足bufsize个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过bufsize-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。函数成功将返回buf,失败或读到文件结尾返回NULL。因此我们不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。

函数原型:char *fgets(char *buf, int bufsize, FILE *stream);
参数:*buf: 字符型指针,指向用来存储所得数据的地址。bufsize: 整型数据,指明存储数据的大小。*stream: 文件结构体指针,将要读取的文件流。


sscanf() - 从一个字符串中读进与指定格式相符的数据。

函数原型:int sscanf( const char *, const char *, ...); int sscanf(const char *buffer,const char *format,[argument ]...);
buffer存储的数据 ,format格式控制字符串,argument 选择性设定字符串,sscanf会从buffer里读进数据,依照format的格式将数据写入到argument里。





0 0
原创粉丝点击