C ++はstrstr()関数と文字列、<string.hの>、<CStringの>区別

strstr()関数について

ライブラリファイルのCStringでは、文字列ではなく、使用方法は次のとおりです。

STR(STR1、STR2)。

STR1:ターゲット文字列式exprを見つけることです。essionを検索します。

STR2:オブジェクトに検索する文字列式を検索するには。

注STR1とstr2はchar *型でなければなりません。

戻り値:STR2はSTR1の最初の発生時str2のアドレスが返され、STR1のサブされている場合は、str1はSTR2のサブいない場合は、NULLが返されます。

定義により、ビットは理解して恥ずかしがり屋。知るたとえば。
例えば:
チャーSTR2 = "CDEF";
CHAR STR1 = "ABCDEFGH"、
関数リターンを介し
はstrstr(STR1、STR2)= cdefgh 。

str1がstr2のが含まれていない場合。
STR2 = CHAR "cxef";
CHAR STR1 = "ABCDEFGH"、
関数リターンを介し
はstrstr(STR1、STR2)= NULL ;


 

文字列とCStringの、string.hの違いについて:

<string.hの>
<string.hの>のように、このようなstrcpyの、STRCAT文字列関数を含む、Cヘッダファイルのバージョンです。

<ストリング>
の<string>)(例えばs.sizeとして文字列クラス様々な動作を、()を含む文字列クラス文字列を定義する標準C ++ヘッダファイル、s.eraseで定義され、 s.insert ()など。しかし、<文字列> Cはまた、strcpyのよう文字列操作の古いバージョンを含む独自のファイルの文字列クラスを定義するだけでなく、<文字列>には、相当する、などをSTRCATが、またの#include <文字列を追加しました.H> Cは、バージョン文字列操作が含まれています。


<CStringの>
前の互換性のためのC ++標準化(1998)プロセスでは、すべてのこれらの文書の標準化団体が実施している新しい定義は、「C」の接頭辞を追加するためにファイル名を追加した後、標準ライブラリに追加されますそして、接尾辞の.hを削除し、それがstring.hのヘッダファイルヘッダをCSTRINGとなりました。その実装は、同一または以前と互換性があります。しかし、これは<CStringの>源であり、私は1つのより多くの事を考えていません。それは、章をカバーするために、標準ライブラリの組織に相当し、彼は「あなたは標準ライブラリの私の一部である。」と述べました


 

書式#include <iostreamの> 
の#include <CStringの> // 必须是のCString 
使用して 名前空間をSTD。
CONST  INT N = 100 ボイド mystrlwr(CHAR * PS)
{ 
    ながら(* PS)
    { 
        場合' A ' <= * PS && * PS <= ' Z '  * PS + = 32 
        PS ++ ; 
    } 
} 
int型のmain()
{ 
    char型キー[N + 1 ]、S [N +1 ]、lowerkey [N + 1 ]、低下[N + 1 ]。
    int型のオプション、N。
    CIN >>キー>>オプション>> N; 
    strcpyの(lowerkey、キー)。
    mystrlwr(lowerkey)。
    以下のためにINT iが= 0 ; I <= N; I ++ 
    { 
        CIN >> S。
        もし(オプション== 0 
        { 
            strcpyの(低下、S)。
            mystrlwr(低下)。
            もし(はstrstr(低下、lowerkey))
            COUT << S << ENDL。
        } 
        {
            もし(はstrstr(S、キー))
            はcout << S << てendl; 
        } 
    } 
    戻り 0 
}

 

おすすめ

転載: www.cnblogs.com/awangkuo/p/12524763.html