看看这个小程序有问题没?删除字符串里指定字符

liaopan77 liaopan77 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <string.h>
#include <stdio.h>
char *fun(char*s,char c)
{
int i;
char *p=s;
char *ppPtr=p;
for (; *s!='\0'; s++)
{
if(*s!=c)
*p++=*s;
}
*p='\0';
return ppPtr;
}
int main()
{
char szTemp[20]="Hello,world";
char *pStr;
pStr=szTemp;
printf("Init str=%s\n",pStr);
pStr= fun(szTemp, 'H');
printf("str = %s\n",pStr);
return 0;
}

昨晚去面试,要写一个删除字符串里的指定字符,没做对。。
后来再网上找到这个,在VC6.0里面编译运行成功。。。
但是有点疑问:
在函数 fun中
定义指针:char *ppPtr=p;
在函数末尾居然用retur返回了这个指针?
个人觉得这个指针变量分配内存在践区,在函数运行完的时候内存应该被销毁了,这里用return 返回指针应该有问题吧?
请大家讨论和指点下!
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
liaopan77
C语言 70,039 成员 243,237 内容