string类的使用 以及string与char * 之间相互转换
string字符串 长度 相加 比较 子串查找
#include <string> // 使用 string 类时须包含这个文件
#include <iostream>
using namespace std;
int main()
{
string str1;
// 输入与输出
cout << "输入字符串 str1" << endl;
cin >> str1;
getchar();
cout << str1 << endl;
// 一行行读取
cout << "输入字符串 str1" << endl;
getline( cin, str1 );//读入一行字符串string
cout << str1 << endl;
// 与 c字符转换
string str2("Hello World!"), str3;
char str4[50];
cout << "输入 C 字符串" << endl;
scanf("%s",str4);
str3= str4;//string str3; char str4[50] str3 = str4; (char[] -->string )
cout << "str2 is " << str2 << endl;
cout << "str3 is " << str3 << endl << endl << endl;
// 求string类型字符串的长度
string str5;
cout << "输入字符串 str5" << endl;
cin >> str5;
int len= str5.size();//string str5 str5.size()
cout << "字符串 str5的长度为" << len << endl << endl << endl;
// 遍历字符串例子
string str6;
cout << "输入字符串 str6" << endl;
cin >> str6;
int i;
for( i= 0; i< str6.size(); ++i )
cout << str6[i];
cout << endl << endl;
// 比较两个字符串 string 比较(直接 大小于)规则同 c字符串比较规则
string str7, str8;
cout << "输入字符串 str7, str8 , 中间用空格格开" << endl;
cin >> str7 >> str8;
if( str7< str8 )
cout << str7 << " 小于 " << str8 << endl;
else if( str7> str8 )
cout << str7 << " 大于 " << str8 << endl;
else
cout << str7 << " 等于 " << str8 << endl;
// 字符串**与字符相加***
string str9= "Darren";//可以改变的字符串 例如 +操作
char ch1= 'a', ch2= 'b';
str9= str9+ ch1;
cout << str9 << endl << endl;
str9= ch2+ str9;
cout << str9 << endl << endl << endl;
// 字符串***与字符串相加***
string str10= "Acm", str11= "ICPC";
// str10.append( str11 );//append
str10 = str10 + str11;//效果同上
cout << str10 << endl << endl;
// 字符串是否包含子串 如果包含 则返回子串在目标串中第一次出现的位置
string str12= "I am a student", str13= "student", str14= "aaaaaaa";
if( str12.find( str13 )!= -1 )
cout << "Find " << str13 << endl;
if( str12.find( str14 )== -1 )
cout << "Not Find " << str14 << endl;
// 转换成 c_字符串 (string -->char [])
string str15= "Hello World";
char str16[10];
strcpy(str16,str15.c_str());//char *strcpy(char* dest, const char *src);
printf("%s\n", str16 );
system("pause");
return 0;
}