文字列処理アクション


まず、ヘッダファイルstringを含む
#include string

1.初期化の定義と構築
文字列変数の宣言
string s;

2.文字列操作関数
1、文字+s+=strを追加する//文字列を追加
s+=”my name is jiayp”;//C文字列を追加
s+=’a’;//文字をつける
2、挿入文字
stringの真ん中の位置に文字列を挿入すると、insert()関数を使用して、挿入された文字列がこのインデックスの後ろに置かれる挿入位置のインデックスを指定できます. s.insert(0,”my name”); s.insert(1,str); 
挿入は文字列形式で書かなければなりません.
3、削除
s.erase(13);//インデックス13からすべて削除
s.erase(7,5);//インデックス7から5個削除
4、比較文字列==!=<=>=compare()
文字列の比較は辞書の順序に従って、辞書の順序の前の文字は小さくて、比較の順序は前から後ろに比較して、等しくない文字に出会ってこの位置の上の2つの文字の比較結果によって2つの文字列の大きさを確定します.もう1つの強力な比較関数はメンバー関数compare()であり,0−等しい>0−が<0−未満より大きい.例を次に示します.
string s(“abcd”); 
s.compare(“abcd”);//0を返します
s.compare(“dcba”);//0未満の値を返します
s.compare(“ab”);//0より大きい値を返します
s.compare(s);//等しい
s.compare(0,2,s,2,2);//「ab」と「cd」でゼロ未満を比較する
s.compare(1,2,”bcx”,2);//「bc」と「bc」で比較します. 
5、文字列サイズsize()、length()
6、ある文字[]、at()を取ると、下付きオペレータ[]と関数at()を使用して要素に含まれる文字にアクセスできます.
   string str1 = "Iphone 5";
   cout<2]<// = h
   cout<4)<// = n

    string stuff;
    getline(cin,stuff); //          stuff
    getline(cin,stuff,'!'); //        “!”  
    cout<

7、サブ文字列substr()substr()は以下の形式である.
s.substr();//sのすべてを返す
s.substr(11);//インデックス11から後ろのサブストリング
s.substr(5,6);//インデックス5から6文字
8、検索関数find()
rfind() 
これらの関数は、検索条件に合致する文字区間内の最初の文字のインデックスを返し、ターゲットが見つからないとnposを返します.すべての関数のパラメータは次のとおりです.
最初のパラメータは、検索されたオブジェクトです.2番目のパラメータ(有無可能)はstring内の検索開始インデックスを示し、3番目のパラメータ(有無可能)は検索文字の個数を示す.
# include 
# include 

using namespace std;
int main()
{
    string str = "when i was young, i listen to radio.";

    position  = str.find("listen");

    if (position != str.npos) //npos      ,         npos   position
    {
        cout<<"         :"<//      9  ,     you,  you  str    
    position = str.find("you",9);
    cout<<"str.find("you",9")is:"<";
    position = 0;
    int i = 1;
    while((position = str.find_first_of(substr,position)) != string::npos)
    {
        cout<position "<";
    position = str.rfind(flag);
    cout<str.rfind(flag):"<

9、反復器begin()、end()
# include 
# include 
# include 
using namespace std;
int main()
{
    string str;

    str.push_back('Q');
    str.push_back('A');

    sort(str.begin(),str.end());
    string::iterator itstr = str.begin();

    for ( ; itstr != str.end(); itstr++)
    {
        cout<//str.pop_back();

    getchar();
    return 0;   //  AQ
}
  • 10、分割文字列
  • #include 
    #include 
    #include 
    using namespace std;
    void test1(){//strtok
        char s[] = "Golden Global   View,disk * desk";
        const char *d = " ,*";
        char *p;
        p = strtok(s,d);
        while(p)
        {
            printf("%s
    ",p); p=strtok(NULL,d); } } void test2(){//find substr string s="Golden Global View disk desk"; int position=0,position1=0; string tmp; if(s[s.size()-1]!=' ')s+=" "; while(s!=""){ position=s.find(" "); tmp=s.substr(0,position); cout<