アルゴリズムのC言語の文字列関数は、2を実装します

1.strcpy

用法:するchar * strcpyの(CHAR * STR1、STR2のchar *)。

機能:コピー文字列は、STR1にSTR2を割り当てます

* myStrのcahr(CHAR * str1は、cahr * STR2)
{ 
    char型 * P = STR1;
     IF(STR2のSTR1 == NULL || == NULL)
         戻りNULL;
     しばらく(!* str2を= NULL)// 文字をコピー* STR2 ( '\ 0'はNULLに相当)終了する
    {
         * 0009 = STR2; 
        0009 ++ ; 
        STR2 ++ ; 
    }
     * 0009 = ' \ 0 ' ; // 最後の文字'\ 0'のコピーので、出口にループ、そうする
    リターン Pを; //はSTR1の最初のアドレスを返します 
}

 

2strset
容FA:チャー*のstrsetとのために(charの* STR、cはチャーのためのものです)。

機能:文字列内のすべての文字は、文字を指定するように設定されています

チャー *のmystrset(チャー *のSTR、チャーCH)
{ 
    CHAR * P = STR。
    しばらく(!* STR = ' \ 0 ' 
    {
         * STR = CH; 
        STR ++ ; 
    } 
    戻りP。
}

 

3.はstrstr
用法:CHAR *はstrstr(CHAR * STR1、STR2のchar *)。

機能:STR1に含まれているか否か確認するために、文字列str1は、文字列STR2を検索します。そうでなければ空の文字列STR2の最初の発生の位置に戻るがある場合

CHAR * mystrstr(CHAR * 0009、CHAR * STR2)
{ 
    CHAR * P = NULL;
     IF(STR2のSTR1 == NULL || == NULL)
         リターンP;
     INT長さ1 = STRLEN(0009); // マスターストリング長
    INT = STRLEN長さ2(STR2); // サブストリングの長さ
    のためにINT I = 0 ; I <長さ1-LENGTH2; I ++は
    { 
        int型フラグに= 1 ; // 同じ文字列であると仮定
        するためINT J = 0 ; J <LENGTH2 ; J ++ 
        {
            IF(!STR STR = [J] [IがJを+])// 長い文字がリリースサイクルに等しくないよう
            { 
                フラグに = 0 ;
                 BREAK ; 
            } 
        } 
        IF(フラグに== 1 
        { 
            リターン(STR1 + I)/ / 復帰位置見出さ
            BREAK ; 
        } 
    } 
    戻りP; 
}

今日いえば、アルゴリズムを探求したいと思い、プログラムの下でのメッセージやよりよいがあります!

おすすめ

転載: www.cnblogs.com/zulkar/p/10973840.html