#include "stdafx.h" #include <string> //#include <cstring> //注释的两个头文件在这里都不行 //#include <string.h> #include <iostream> using namespace std; //使用string类 int _tmain(int argc, _TCHAR* argv[]) { //初始化 int n = 4; string str1; //空字符串 string str2("hello world"); //将str2初始化为:"hello world" string str3(str2); //str3 == str2 string str4; //string str4(n,"str3"); //无法初始化 //string str5(n,'b'); //无法初始化 cin >> str1 >>str4; //空格时结束,要使用string类才能这样,如果头文件是string.h则无法这样输入 //输入时将忽略开头的空白字符(空格,换行符,制表符);并且遇到空白符结束 cout << str1 << endl << str4 << endl; cout << str2[2] << endl; //可以像数组一样访问 getchar();//如果不加这个停顿无法执行下面的输入,会直接结束,不明白为什么? //使用getline(), string str6; getline(cin,str6); //如果cin是ifstream对象,则是从文件中获取一行内容到str6中 cout << str6 << endl; //getline会自动丢弃换行符,不会将换行符保存到str6中; cout << str6.size() << endl; //字符串的长度,size()返回的类型是unsigned型,最大值是int的两倍 //所以在不知道string长度的情况下不要将size()的返回值赋给int类型 //string可以使用关系符 string str7 = "hello"; //赋值 if(str3 == str2) { cout << "str3与str2相等"; //可以使用==, > , < , >= , <=,关系符 } string str8 = "world"; string str9 = str7+str8; //相加,两个字符串连接在一起 return 0; } 下图是str7与str8相加后的结果,并且可以看出课通过下标访问各个字符 string类的一些操作