问题:在一些字符串中搜索某个特定的字符串
使用指针数组来表示这些字符串,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;
}