C语言编程经典案例(指针系列一)——一个符号引发的杯具 其实,对于c指针,我们主要抓住它的本质。指针,就是一个地址。比如同学甲的宿舍是,则就可以看成同学甲床铺的一个“指针”,这个指针所指向的“内容”就是同学甲的床铺。理解这点,再加上一定的练习和积累,就可以熟练将指针运用在编程之中了。下面几期我会逐步把一些经典程序案例首发到头条,希望各位朋友指点和讨教,共同进步,就像下面这样,人生是多么美好。 题目:统计一字符串在另一字符串出现的次数。这个题目涉及到两个字符串,利用指针完成的话,就是让短字符串的首字符和长字符串分别对比,符合一定条件就可以判定找到匹配字符串,计数器加一。不过需要提醒的是,编程中一个小插曲还是值得深思的。下面先贴上代码。#includestdio.hintcount=0;main(){char*sub_str=nb;char*str=gonbonienbest;char*p1,*p2;p1=sub_str,p2=str;while(*p2!=\0){do{if(*p1!=*p2)break;p1++;p2++;}while(*p1==*p2);if(*p1==\0){count++;}p2++;p1=sub_str;}printf(重复次数%d\n,count);}结果,小编满心欢喜,马上运行测试。结果被现实打了一个响亮的巴掌。 什么,重复次数count=?这是绝逼不对啊。问题在哪里?看看程序,分析了下算法部分,没啥问题啊。于是,按下F11,开始调试,调试过程也是相当的顺溜,没啥问题,但是最后的代码,我发现,在调试窗口的count的确是2,原来问题是我把输出部分的count加了一个取地址符号!!!!去掉这个取地址符号,就运行正确了! 编程如人生,马虎不得。这就是编程带给我们的重要人生启示之一吧。 大家了解更多的编程知识可以加小编北京治疗白癜风那里北京看白癜风最正规医院
|