设为首页 加入收藏

TOP

在数组中编辑定长字符串(二)
2013-09-24 09:23:11 来源: 作者: 【 】 浏览:229
Tags:编辑 字符串

 

  scanf("%9s", (pcStr + i * 10));

  fflush(stdin);

  printf("add succeed!\r\n\r\n");

  *(pnFlag + i) = 1;

  break;

  }

  }

  if (NFLAGLEN == i)

  {

  printf("No Space!\r\n");

  }

  }

  // 删除字符串

  void delString(char *pcStr, int *pnFlag)

  {

  int i = 0;

  searchString(pcStr, pnFlag);

  printf("please input a number:\r\n");

  scanf("%d", &i);

  // 数据未清空,只是将标志位置为0

  *(pnFlag + i) = 0;

  printf("delete succeed!\r\n");

  }

  // 查询所有字符串

  void searchString(char *pcStr, int *pnFlag)

  {

  int i = 0;

  printf("\r\n");

  for (i = 0; i < NFLAGLEN; i++)

  {

  //标志位为1则显示

  if (*(pnFlag + i) == 1)

  {

  printf("%d:\t%s\r\n", i, (pcStr + i * 10));

  }

  }

  printf("\r\n");

  }

  PS:存储定长字符串相对来说实现起来简单一些,如果存储长度不确定,在删除字符串后又有新增字符串的话,需要检查被删除字符串的空间能否存储的下新增字符串。如果不能,需要找下一个存储空间。还有一种情况,所有连续的空间都不够存储用户输入的长字符串的话,可以分拆存储,但是分拆存储后查询显示时需要重新拼接。或者将数组内已存储的字符串都移位,将已删除的字符串空间给挤出来,这样连续的空间就会变长。此种情况跟磁盘碎片整体有相似之处。这部分,等写出来后再贴出来吧。

  首先在数组里玩玩数组,以后换个存储介质,比如硬盘啊之类的,应该会轻松很多,只是换了几个功能函数而已。

      

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C语言去掉字符串集合重复元素 下一篇C语言中typedef用法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: