这里说我这个内存不能written,*c=*d; 为什么不能操作?

WEL04 2009-08-25 06:54:23
#include "stdafx.h"
int del_substr(char * str,char * substr)
{
char * a=str;
char *b=substr;
char *d=NULL;
char *c=NULL;
if(str==NULL || substr==NULL)
return 0;
else
{

while(*a!='\0')
{
if(*a==*b)
{
c=a;
break;
}
else
a++;
}
if(c!=NULL)
{
while(*++b!='\0')
{
while(*++a!='\0')
{
if(*a==*b)
break;
}
if(*a=='\0')
return 6;
}
d=++a;
while(*c!='\0')
{
*c=*d; [color=#FF6600]// 这边赋值应该怎么写 这里说我这个内存不能written[/color]
c++
d++;
}
*c='\0';
return 1;
}
else
return 4;
}

}


int main(int argc, char* argv[])
{
int c=100;
char * a="/nabc";
char * b="b";
c=del_substr(a,b);
while(*a!='\0')
{
printf("%c\n",*a);
a++;
}
printf("%d",c);
return 1;
}
...全文
73 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
WEL04 2009-08-25
  • 打赏
  • 举报
回复
3Q 我以为整个程序中不能用下角标,是函数里不能用 , 呵呵 不过CONST 指针, 指针 CONST 还真的很迷糊。
mr_leo17895 2009-08-25
  • 打赏
  • 举报
回复

int main(int argc, char* argv[])
{
int c=100;
char a[]="\nabc";
char *b="b";
char *a1 = a;
c=del_substr(a1,b);
while(*a1!='\0')
{
printf("%c\n",*a1);
a1++;
}
printf("%d",c);
return 1;
}

WEL04 2009-08-25
  • 打赏
  • 举报
回复
char * const a="abc" 是能修a的值,但是不能用a++ 怎么改啊
mr_leo17895 2009-08-25
  • 打赏
  • 举报
回复
char * a="/nabc";

这里a指向字符串常量,所以不能修改*a的值,改成char a[]就可以了,不过输出要改一下
WEL04 2009-08-25
  • 打赏
  • 举报
回复
写题目用的,作用就是如果字符串1‘abcd’ 字符串2 'cd' 把字符串1改为‘ab’;这题目都要指针来写。
zqlong_sunday 2009-08-25
  • 打赏
  • 举报
回复
看错了对不住
zqlong_sunday 2009-08-25
  • 打赏
  • 举报
回复
指针为空,怎么可能进行操作?
不会用指针干吗非得用指针?
WEL04 2009-08-25
  • 打赏
  • 举报
回复
新手 不是很懂,有老的帖子 相关的链接吗?
hrlhrl0 2009-08-25
  • 打赏
  • 举报
回复
这问题在这看了N遍,常量

69,371

社区成员

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

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