6.18.1
char * find_char(const char * source, const char * chars)
{
if(source == NULL || chars == NULL || *source == '\0' || *chars == '\0')//检测
return NULL;
const char * temp = chars;//用个临时指针保存chars的起始地址
while(*source)
{
while(*chars)
if(*source == *chars++)//将chars每个字符与这个字符比较
return (char *)source;//因为形参source有const限定符,C没有从const限定的指针类型到非const限定的类型的隐式转换,所以你应该添加一个显式的,即一个强制转换
chars = temp;
source++;
}
return NULL;
}
6.18.2
这道题中find_char函数使用的是第一题的方法
int del_substr(char * str, const char * substr)
{
char * temp = str, * temp2 = NULL;
const char * temp1 = substr;
while(*str)
{
temp = str;
while(*substr && *str == *substr)//此循环寻找目标字符串中是否有指定字符串