用指针实现数组长度的改变

风流意气都作罢 提交于 2019-12-09 20:45:41

用指针实现数组长度的改变

  • 在一些问题中,我们常常要对数组的长度和元素进行改变,例如在比较两个实数A与B的值是否相等。当A与B的值都非常大的时候,仅仅使用关系运算符来比较是无法完成的。这时候,我们就要将A与B用字符数组的形式进行存储。
  • 我们可以定义char num1[100000],num2[100000]来分别存储A与B的值。在使用strcmp(num1,num2)来进行比较。但有时候A与B的值并不一定是标准的实数,例如A=00012345.00 B=+12345,这时候就需要去掉字符串里面多余的'+' , '0' , '.'
  • 对于处于字符串末位的‘0’与 '.',我们只需要将其变成字符串结束标志'\0'即可。但对于字符串前面的'+' 与 '0'就相对难以处理。我们可以用字符串后面的元素来将其覆盖。例如假设num1="+0000345",我们可以用for(i=0;i<8;i++) num1[i]=num[i+5]来进行处理。但是如果字符串num1的长度非常大,这样处理会导致程序运行时间过长,所以我们就要用到指针。
  • 定义char *p=num1,我们知道当指针变量指向数组或字符串的时候,其表示此数组或字符串的首地址,即p=&num1[0],所以我们可以改变指针变量p,的值,使其指向字符串的第一个非0元素,即p=&num1[5],然后用指针p代替字符串num1,以此实现字符数组的长度的改变。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!