本文已参与[新人创作礼]活动,一起开启掘金创作之路。
3.使用字符串
3.1数组中使用字符串
使用数组存储字符串有两种方法:一种是将数组初始化为字符串常量,一种是使用键盘或者文件输入读数据到数组。示例代码如下:
#include<iostream>
#include<cstring>
int main(){
using namespace std;
const int s=10;
char name1[s];
char name2[s]="Aboy";
cout<<"hello,i'm "<<name2<<"and you?"<<endl;
cin>>name1;
cout<<"my is"<<name1;
cout<<"and my name has"<<strlen(name1)<<"letters";
return 0;
}
strlen函数能够统计字符串长度,使用这个函数之前需要先声明cstring这个头文件,同时cstring这个头文件中还包含了许多和字符串有关的函数。
3.2字符串输入
使用示例如下:
#include<iostream>
int main(){
using namespace std;
const int size=20;
char name[size];
char like[size];
cout<<"your name:\n";
cin>>name;
cout<<"your like:\n";
cin>>like;
cout<<name<<"like"<<like;
return 0;
}
使用cin获取字符串输入时候,需要注意一件事,那就是输入换行符时候或者说换行符是结束的标志,当你按照提示写入时候,一旦按下换行键,输入自动结束。
3.3读取一行字符串
iostream中一些类提供了一些对行的操作函数:getline()和get()。getline()和get()都会读取一行的输入直到遇见换行符,区别在于get不会丢弃换行符,getline会丢弃。,getline使用示例如下:
#include<iostream>
int main(){
using namespace std;
const int size=20;
char name[size];
char like[size];
cout<<"your name:\n";
cin.getline(name,size);
cout<<"your like:\n";
cin.getline(like,size);
cout<<name<<"like"<<like;
return 0;}
getline()函数每次读取一行,遇见换行符结束,但是不保存换行符,最后一个会用\0来结束,与初始化数组结果类似。 get使用示例如下:
cin.get(name,size);//读取第一行
cin.get();//转到新的一行
cin.get(like,size);//读取第二行
//由于保留了换行符,所以第二次调用第一个字符串就是换行符,第二次调用一开始就结束了,所以第三次调用才能获取新输入
//还有一种方法
cin.get(name,size).get()//这样就可以下次直接获取输入了。
完整示例如下:
#include<iostream>
int main(){
using namespace std;
const int size=20;
char name[size];
char like[size];
cout<<"your name:\n";
cin.get(name,size).get();
cout<<"your like:\n";
cin.get(name,like).get();
cout<<name<<"like"<<like;
return 0;
}