本程序中实现的方式通过指针遍历字符串,并对制定出中符合条件的记录复制到另一个新串中,过程中若遇到要删除的字符便让指针跳过该字符到下一个位置,直到字符串遍历结束。
#include <stdio.h>
#include <stdlib.h>
char *fun(char *s,char c)
{
char *p=s; //用指针p指向字符串s的首地址
char *ppPtr = p; //ppPtr指向字符串p的首地址
for (; *s != '\0'; s++)
{
if (*s != c) //如果当前字符不等于指定字符
*p++ = *s; //将当前字符写入指针p
}
*p = '\0';
return ppPtr; //返回所得字符串,因为此时p已经指向了末尾,返回p不可行
}
int main()
{
char szTemp[20] = "Hello,world";
printf("初始字符串为:%s\n",szTemp);
char *pStr;
pStr = fun(szTemp, 'l');
printf("要删除的字符为:l\n");
printf("最终得到的结果为:\n");
printf("str = %s\n", pStr);
system("pause");
return 0;
}