c/c++语言开发共享C语言数组截取常见问题

这是一段数组截取的代码,函数功能是检查后面的'*'的数量,若多于指定输入数,则把多余的'*'删除 注释部分是我一开始写的,试了好几次都不行,调试的时候发现第15行 –p1 是没有值的。原因在第10行 *p++,相当于把p(数组首地址)移动到最后,前面的元素全被删除。而p1=p,所以前面没有值。第6 …

这是一段数组截取的代码,函数功能是检查后面的’*’的数量,若多于指定输入数,则把多余的’*’删除

 1 void  fun( char *a,int  n )   2 {   3    4     char *p = a;   5        6     while(*p)   7         p++;   8            9     /*  10     while(*p++);  11     */  12       13     char *p1 = p;  14     int num = 0;  15     while(*(--p1) == '*')  16         num++;  17   18     if(num>n){  19         *(p-num+n) = '';  20     }  21 }

注释部分是我一开始写的,试了好几次都不行,调试的时候发现第15行 –p1 是没有值的。原因在第10行 *p++,相当于把p(数组首地址)移动到最后,前面的元素全被删除。而p1=p,所以前面没有值。第6、7行相当于p[i],i++,p1=&p[i]。所以可行。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/604896.html

(0)
上一篇 2021年5月12日
下一篇 2021年5月12日

精彩推荐