#include<stdio.h>
char *find_char(const char *source,char const *chars)
{
if(source==NULL||chars==NULL)return NULL;
if(*source==NULL||*chars==NULL)return NULL;
char *temp1 =(char *) source;
char *temp2 =(char *) chars;
while(*temp1!='\0')
{
while(*temp2!='\0')
{
if(*temp1 == *temp2) return temp1;
temp2++;
}
temp2 = (char *) chars; //对于source下一个字符,从头遍历chars。
temp1++;
}
return NULL;
}
int main()
{
char *s = "ABCD";
char *s1 = "FFBISFHL";
char *s2 = find_char(s,s1);
printf("%s\n",s2);
return 0;
}
#include<stdio.h>
#include<assert.h>
#include<string.h>
char *match(char *str,char const *substr)
{
assert(str!=NULL||substr!=NULL);
if(strlen(str)<strlen(substr)) return NULL;
while(*substr!='\0'){
if(*str++!=*substr++)
return NULL;
}
return str;
}
int del_substr(char *str,char *substr)
{
assert(str!=NULL||substr!=NULL);
assert(*str!='\0');
if(*substr=='\0')return 1;
char *next;
while(*str!='\0'){
next = match(str,substr);
if(next != NULL)
break;
str++;
}
if(*str == '\0')
return 0;
while(*str!='\0'){
*str++ = *next++;
}
return 1;
}
int main()
{
char s1[] = "abcdefghi";
char s2[] = "cde";
int a = del_substr(&s1[0],&s2[0]);
printf("%d\n",a);
return 0;
}
//首尾两个指针。
void reverse_string(char *str)
{
char *last_char = str;
for(;*last_char!='\0';last_char++)
;
last_char--;
while(str<last_char){
char temp;
temp = *str;
*str++ = *last_char;
*last_char-- = temp;
}
}