問題:在一些字符串中搜索某個特定的字符串
使用指針數組來表示這些字符串,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;
}