string类的构造函数
构造函数程序示例:
#include <iostream>
#include <string>
int main()
{
using namespace std;
string one("Lottery Winner!");
cout << one << endl;
string two(20, '$');
cout << two << endl;
string three(one);
cout << three << endl;
one += " Oops!";
cout << one << endl;
two = "Sorry! That was ";
three[0] = 'P';
string four;
four = two + three;
cout << four << endl;
char alls[] = "All's well that ends well";
string five(alls, 20);
cout << five << "!\n";
string six(alls + 6, alls + 10);
cout << six << ", ";
string seven(&five[6], &five[10]);
cout << seven << "...\n";
string eight(four, 7, 16);
cout << eight << " in motion!" << endl;
return 0;
}
string类输入:
C-风格的字符串输入:
char info[100];
cin >> info;
cin.getline(info, 100);
cin.get(info, 100);
对于string对象:
string stuff;
cin >> stuff;
getline(cin, stuff);
指定边界:
c-string: cin.getline(info, 100, ':');
getline(stuff, ':')
string的getline自动调整大小。而c-风格的不行
string对象的最大长度是由string::npos指定的,通常是unsigned int值
string的 operator>>()
文件读取示例:
#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
int main()
{
using namespace std;
ifstream fin;
fin.open("tobuy.txt");
if (fin.is_open() == false)
{
cerr << "Can't open file. Bye.\n";
exit(EXIT_FAILURE);
}
string item;
int count = 0;
getline(fin, item, ':');
while (fin)
{
++count;
cout << count << ": " << item << endl;
getline(fin, item, ':');
}
cout << "Done\n";
fin.close();
return 0;
}
tobuy.txt:
sardines:chocolate ice cream:pop corn:leeks:
cottage cheese:olive oil:butter:tofu:
输出结果
先完结