标准库类型string 表示可变长的字符序列,使用string类型必须包含string头文件#include <string>
1 定义和初始化string对象(包括直接初始化和拷贝初始化)
如果使用=号初始化一个变量,实际上执行的是拷贝初始化,编译器把等号右侧的初始值拷贝到新创建的对象中去,而如果不使用等号,则执行的是直接初始化
string s1="hello,world"; //拷贝初始化
string s2("hello,wolrd"); //直接初始化
string s3(10,'c'); //直接初始化
2 string对象的基本操作
- 输入 输出
string s1;
cin>>s1;
cout<<s1;
//cin输入时string类型对象遇会自动忽略开头的空白(即空格符,制表符,换行符等)并从第一个真正的字符开始读起,直到遇到下一处空白为止,比如输入一个 hello world 输出只是一个hello
- getline有时我们希望保存输入中的空白符,用getline
- s1.empty() s1返回为空为true,否则返回为false
- s1.size() 返回s中字符的个数
- s[n]返回s中第n个字符的引用,n从0开始
- s1+s2 返回s1和s2连接后的结果
- s1=s2 用s2的副本代替s1
- s1==s2 s1!=s2 还有>= <= < > 都对大小写敏感
输入一行的字符并计算非空行输入字符的个数
#include <string>
#include <iostream>
using namespace std;
int main()
{
string s;
while (getline(cin, s))
{
if (!s.empty())
{
cout << s << endl;
cout << "字符数为:" << s.size() << endl;
}
}
}