永发信息网

c指针问题求教大神

答案:2  悬赏:80  手机版
解决时间 2021-11-21 01:28
  • 提问者网友:情歌越听越心酸
  • 2021-11-20 02:35
c指针问题求教大神
最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-11-20 04:00
#include 

int del_substr(char *str , char const *substr);

int main()
{
char str1[] = "asdfghjkl";//<-----------------
char *str2 = "dfg";

del_substr(str1 , str2);

printf("%s
" , str1);

return 0;
}

int del_substr(char *str , char const *substr)
{
char *currChar = str;
char *currSubChar = (char *)substr;
int subLen = 0;

if (*substr == 0) //空串
return 1;

while(*currChar)
{

if ( *currChar == *currSubChar)
for (subLen = 0 ; *(currSubChar +subLen ); subLen ++)
if ( *(currChar + subLen) != *(currSubChar + subLen ) )
break;


if ( !*(currSubChar + subLen) )
{
for ( ; *currChar ; currChar ++)
*currChar = *(currChar + subLen );

* ++currChar = 0; //给字符串结尾

return 1;
}

currChar ++;
}

return 0;
}
全部回答
  • 1楼网友:狂恋
  • 2021-11-20 04:25
第一个函数的两个指针是局部变量,函数完了就销毁了,换不换都一样,第二个是直接操作指针指向的地方(内存单元),也就是直接操作变量。不恰当的比方,好比停车,有个图纸记录了每个车位停的什么车,第一个就相当于另外拿了个图纸画了一下想要的位置,原来的图没变,函数结束后来的图被扔了,原来的图保留着,实际的车并没动,第二个函数就是直接把车开到想要它停的位置
求采纳为满意回答。追问我这个只有两个参数,在函数中进行的操作啊,函数操作位置应该没问题吧。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯