C++文字列のよくある操作関数は最も総括します!!
3429 ワード
问题を作る过程でよく文字列を使って、时にはとても力を入れて1つの関数を书いて、结果は最后にC++がすでにこのような関数をカプセル化したことを発见します.の時間をかけてまとめてみましたが、参考にしました.http://www.cplusplus.com/reference/
1、コンストラクション関数:string str:空白列、string s(str)はstrをsにコピーし、string s(num,c)はnum個のc文字からなる文字列を生成する.
2、挿入関数:二つのpush_があるback()とinsert()は、後者が一般的です.push_back():s.push_などの末尾に文字を挿入します.back(‘p’); Insert():例えばs=「abcdss」で、s.insert(s.begin()、「i」)を実行した後、位置0の前に「i」を挿入して「iabcdss」になります.
3、遍歴:反復器または下付き文字を利用して、下付き文字がよく使われます.反復器には、順方向と逆方向の2つがあります.順方向:string::iterator it=s.begin();it!=s.end();it++; 逆:string::reverse_iterator it=s.rebegin();it!=s.rend();it++; ここで*itはその位置を表す文字です.下付き文字列は文字配列と同様であり,これ以上説明しない.
4、検索:1)、文字列を検索する:s.find(ss)、sに戻るssの開始位置を見つけ、そうでなければ-1を返す.2)、ある位置からある文字を検索する:s.find(‘t’,6)、sの位置6から文字’t’を検索し、見つけたら位置を返し、そうでなければ-1を返す.注意1)と2)はいずれも最初に見つけた位置を返す.3)、末尾から文字を検索する:s.rfind(‘t’);4)、ある場所からs 1に属さない最初の文字の場所を検索します.例えば、s=「cdcdscds」、s 1=「cdcdfff」、s.find_first_not_of(s 1)=4,sの位置4文字はs 1に属していないが,同様にs 1に属する最初の文字の位置を検索し,notを外せばよい.
5、ソート:sort(s.bgein()、s.end();
6、分割切り取り:substr()とstrtok()の2つの関数があります.s.substr(2,5)は、sが2位置から始まる5文字からなるサブ列である.strtok()関数プロトタイプ:char*strtok(char*s,const char*delim)関数機能:分解文字列は1組の文字列、sは分解する文字列、delimは区切り文字列である.
7、削除:erase()関数、例えばs=“12345678”、s.erase(s.begin()+3)後に“1235678”になって、位置3の文字を削除します.
8、置換:repalce()関数:s.replace(pos,len,ss)は、sがposから始まるlen文字をss,s.replace(pos,n 1,n 2,c)に置換し、sがposから始まるn 1文字をn 2文字cに置換する.
9、大文字と小文字の変換:tolower()とtoupper().ループループ文字列の各位置s[i]=tolower(s[i])、大文字小文字、またはs[i]=toupper(s[i])、小文字大文字.ここでは、STLのtransform()関数を推奨します.具体的には、transform(s.begin()、s.end():tolower)を大文字で小文字に、小文字で大文字に変換するのと似ています.
10、比較関数:stringサポート、<=、>=、=、!=などの操作を行います.compare()関数はstringの比較関数として専門的に用いられ、s.compare(ss)=0はss==sを説明し、戻り1はs>ssを示し、戻り-1はsを示す
11、接合関数:c++のstringは直接加算をサポートし、「cdd」+「sss」=「cddsss」である.またs.append(ss)はsの最後にssを加えることを表し,s+=ssに等しい.
1、コンストラクション関数:string str:空白列、string s(str)はstrをsにコピーし、string s(num,c)はnum個のc文字からなる文字列を生成する.
2、挿入関数:二つのpush_があるback()とinsert()は、後者が一般的です.push_back():s.push_などの末尾に文字を挿入します.back(‘p’); Insert():例えばs=「abcdss」で、s.insert(s.begin()、「i」)を実行した後、位置0の前に「i」を挿入して「iabcdss」になります.
3、遍歴:反復器または下付き文字を利用して、下付き文字がよく使われます.反復器には、順方向と逆方向の2つがあります.順方向:string::iterator it=s.begin();it!=s.end();it++; 逆:string::reverse_iterator it=s.rebegin();it!=s.rend();it++; ここで*itはその位置を表す文字です.下付き文字列は文字配列と同様であり,これ以上説明しない.
4、検索:1)、文字列を検索する:s.find(ss)、sに戻るssの開始位置を見つけ、そうでなければ-1を返す.2)、ある位置からある文字を検索する:s.find(‘t’,6)、sの位置6から文字’t’を検索し、見つけたら位置を返し、そうでなければ-1を返す.注意1)と2)はいずれも最初に見つけた位置を返す.3)、末尾から文字を検索する:s.rfind(‘t’);4)、ある場所からs 1に属さない最初の文字の場所を検索します.例えば、s=「cdcdscds」、s 1=「cdcdfff」、s.find_first_not_of(s 1)=4,sの位置4文字はs 1に属していないが,同様にs 1に属する最初の文字の位置を検索し,notを外せばよい.
5、ソート:sort(s.bgein()、s.end();
6、分割切り取り:substr()とstrtok()の2つの関数があります.s.substr(2,5)は、sが2位置から始まる5文字からなるサブ列である.strtok()関数プロトタイプ:char*strtok(char*s,const char*delim)関数機能:分解文字列は1組の文字列、sは分解する文字列、delimは区切り文字列である.
const char *split=",;!";
char *p=strtok(str,split);
while(p!=NULL) {
cout<<p<<'
';
p=strtok(NULL," ");
}
// ",:!" str
return 0;
7、削除:erase()関数、例えばs=“12345678”、s.erase(s.begin()+3)後に“1235678”になって、位置3の文字を削除します.
8、置換:repalce()関数:s.replace(pos,len,ss)は、sがposから始まるlen文字をss,s.replace(pos,n 1,n 2,c)に置換し、sがposから始まるn 1文字をn 2文字cに置換する.
9、大文字と小文字の変換:tolower()とtoupper().ループループ文字列の各位置s[i]=tolower(s[i])、大文字小文字、またはs[i]=toupper(s[i])、小文字大文字.ここでは、STLのtransform()関数を推奨します.具体的には、transform(s.begin()、s.end():tolower)を大文字で小文字に、小文字で大文字に変換するのと似ています.
10、比較関数:stringサポート、<=、>=、=、!=などの操作を行います.compare()関数はstringの比較関数として専門的に用いられ、s.compare(ss)=0はss==sを説明し、戻り1はs>ssを示し、戻り-1はsを示す
11、接合関数:c++のstringは直接加算をサポートし、「cdd」+「sss」=「cddsss」である.またs.append(ss)はsの最後にssを加えることを表し,s+=ssに等しい.