【C语言】VC6.0显示*****.exe已停止工作

qq_31678957 2015-12-01 10:38:00
/*
**删除一个字符串的一部分
*/
#include<stdio.h>
#define NUL '\0' /*'\0'不好打*/
char *match( char *str, char *substr);
int del_substr( char *str, char *substr);
main()
{
char *str="ABCDEFG";
char *substr="CDE"; /*返回指针的函数*/
del_substr(str,substr);
puts(str);
}
/*
**为了清楚,单独写一个子函数实现判断两个字符串匹配
*/
char *match(char *str,char *substr)
{
while(*substr!=NUL)
if(*str++!=*substr++)
return NUL;
return str;
}
/*
**删除子串函数
*/
int del_substr(char *str,char *substr )
{
char *next;
/*
**保证被操作字符串不为空
*/
while(*str!= NUL)
{
next=match(str,substr);
if(next!= NULL)
break;
str++;
}
/*
**到达源字符串文件尾的时候,说明没有子串
*/
if(*str==NUL)
return 0;
/*
**被删除子串之后的字符复制操作
*/
while(*str++=*next++);/*字符串拷贝*/
return 1;
}
...全文
67 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_24095983 2015-12-02
  • 打赏
  • 举报
回复
char *str="ABCDEFG"; char *substr="CDE"; /*返回指针的函数*/ 字符存储在常量区,不可以被修改
醉花阴柳 2015-12-02
  • 打赏
  • 举报
回复
指针不要这样初始化,因为常量存放在程序的一块常量区域,用字符串初始化指针会让指针指向常量区域,一修改就会导致内存错误,改用数组
paschen 2015-12-02
  • 打赏
  • 举报
回复
char *str="ABCDEFG"; 改成 char str[100]="ABCDEFG";

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧