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;
}