[C / C ++]はstrstr関数とc_strに()関数

 strstr(T、S)関数:

これは、サブストリングのストリングS Tかどうかを決定するため、文字列関数です。もしそうであれば、関数は、TにおけるSの最初の発生のアドレスを返し、そうでない場合はNULLを返します。

ヘッダファイルします。#include <string.hの>

関数のプロトタイプます。char *はstrstr(のconstのchar * str1は、constのchar型* STR2)。

戻り値:(1)正常に見つかったが、親は、文字列のchar *ポインタ位置の最初の発生を返し 、見つからない場合(2)、すなわち、そのようなサブストリングが存在しないNULLを返します。

書式#include <iostreamの> 
の#include <CStringの> // 头文件
使用して 名前空間はstd;
INT メイン()
{ 
    文字 T [ 20 ]、S [ 20 ]。
    CIN >> T;
    一方、1 ){ 
        CIN >> S。
        もし(はstrstr(T、S))
            はcout << " YES " << '  '// S为父串T的子串 
            はcout <<はstrstr(T、S)-T << '  '
            << STRSTR COUT(T、S)<<てendl; // 戻り値の文字列、親列S Tは、サブストリングの始めから
        、他の
            COUT << " NO " <<てendl; // Sサブストリングは、Tの親ではありませんがストリング
    }
     戻り 0 ; 
}

結果は以下の通りであります:

文字列クラスを持つ文字列ならば、char *型にsringにc_str()関数を使用する必要があります。

書式#include <iostreamの> 
の#include <CStringの>
 使用して 名前空間はstdを、
INT メイン()
{ 
    文字列T、S。
    CIN >> T;
    一方、1 
    { 
        CIN >> S。
        もし(はstrstr(T.c_str()、S.c_str()))
            COUT << " YES " << ENDL。
        他の
            裁判所未満 << " NO " << てendl; 
    } 
    戻り 0 
}

c_str()関数について

c_str関数は、()C列配列にC ++の文字列であり、c_str()CONSTのchar *は、文字列の最初のアドレスへのポインタを生成します。

チャーQ [20]。 

文字列S = "1234"; 

strcpyの(Q、S.c_str())。 

エラー、c_str()は、一時的にポインタを返していないように、それを操作することはできません。

構文:CONSTのchar *のc_str();

c_str()関数)は、C言語の文字列型ではないが、それは(c_str部材ストリングクラスのオブジェクトを介して機能する必要があり、これは、言語Cと互換性があることである。通常のC列、同じ文字列の内容と、この文字列を指すポインタを返します文字列パターンCの文字列にオブジェクトを変換します。

注:c_str(返されたポインタ)を操作するためのstrcpy()関数などを使用してください。

(上記は、Baiduのノウハウから取られています)

 

おすすめ

転載: www.cnblogs.com/HOLLAY/p/11626554.html
おすすめ