在一組字符串中查找一個指定字符(C語言)

問題:在一些字符串中搜索某個特定的字符串


使用指針數組來表示這些字符串,strings是一個指向指針數組的指針,value時我們要查找的字符值。注意指針數組以一個NULL指針結束,函數將檢查這個值以判斷循環何時結束。
在這裏插入圖片描述

版本1

#define TRUE 1
#define FALSE 0

int find_char(char **strings,char value)
{
    char *string;

    while((string==*strings++)!=NULL)
    {
        while(*string!='\0')
        {
            if(*string++ == value)
                return TRUE;
        }
    }
    return FALSE;
}

while((string = *strings++)!=NULL)

(1)它把strings當前所指向的指針複製到string中
(2)它增加strings的值,使它指向下一個值
(3)它測試string是否爲NULL。當string指向當前字符串中作爲終止目標的NULL時,while種終止

版本2

int find_char_version2(char **strings,int value)
{
    assert(strings!=NULL)

    while(*strings!=NULL)
    {
        while(**strings!='\0'){
            if(*(*strings)++==value)
                return true;
        }
        strings++;
    }
    return FALSE;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章