问题:将string字符串"askdajkskaskaskdaskg"中的sub子串"ask"删除,删除后的结果是 “djdg”。
思路:p=string的每个字符与q=sub比较,若有相等的退出q循环,p指向下一个字符并从sub的首字符开始比较,重复上述步骤直到*p==‘/0’;否则q++。退出q循环后,判断q是否到"ask"字符串的末尾,若是就将此时*p的值存储以便输出。
#include <stdio.h>
#define MAX 8
int main(void)
{
char *string = "askdajkskaskaskdaskg";
char *sub = "ask";
char *p = string;
char *q = sub;
char arr[MAX];
int i = 0;
while (*p!='/0')
{
while (*q!='/0')
{
if (*p==*q)
{
break;
}
else
{
q++;
}
}
if (*q=='/0')
{
arr[i] = *p;
i++;
}
p++;
q = sub;
}
arr[i] = '/0';
printf("string = %s,/narr = %s/n",string,arr);
return 0;
}