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