C语言指针的问题,求大神!!
发布网友
发布时间:2023-05-03 13:10
我来回答
共4个回答
热心网友
时间:2023-10-20 09:23
最后一句的tep--;应该是在for循环里面不然tep就不会变了。
看程序的意思是删除字符串s里面c开头长度为len的子串。你写的有些复杂了
void deleteSubString(char *s,char c,int len)
{
int flag=0;
int s_len=0;
char *p=s;
for(*p;*p!='\0';p++)
{
if(*p==c)
{
printf("found\n");
flag=1;
break;
}
}
printf("flag=%d str=%s\n",flag,p);
if(flag)
{
s_len=strlen(p);
if(s_len<len)
{
printf("error string is not enough\n");
}
else
{
strcpy(p,p+len);
}
}
printf("string=%s\n",s);
}
热心网友
时间:2023-10-20 09:23
for(i=0;(temp=(*p++)!='\0';i++)
是这个错了吧。追问好像是的,怎么改
追答for(i=0;(temp=(*p++))!='\0';i++)
热心网友
时间:2023-10-20 09:24
应该是内存越界了
热心网友
时间:2023-10-20 09:24
这地方内存越界了。追问怎么改啊