|
发表于 2013-5-20 02:15:13
|
显示全部楼层
自己写了一段代码如下,通过vs2005 实践通过,代码如下- #include "stdafx.h"
- #include<string.h>
- #include<stdio.h>
- #include <malloc.h>
- #define maxlen 1024
- struct seqlist
- {
- char r[maxlen];
- int length;
- };
- //创建数据,返回创建的数据组数
- int createData(struct seqlist *&pList)
- {
- int nRows = 0;
- printf("请输入想要创建几组数据:");
- scanf("%d",&nRows);
- pList = (seqlist *)malloc(sizeof(seqlist) *nRows);
- return nRows;
- };
- //添加数据函数
- void addData(seqlist &pList)
- {
- //初始化pList
- memset(pList.r,0,1024);
- pList.length = 0;
- int nLen = 0;
- printf("请输入添加数据的个数:");
- scanf("%d",&nLen);
- //给字符数组赋初值
- char pStr[1024] = {0};
- memset(pStr,0,1024);
- printf("请输入元素的内容:");
- scanf("%s",pStr);
- pList.length = nLen;
- //给pList中的r数组赋值
- int i = 0;
- for (i = 0; i < nLen; i++)
- {
- if (i >= strlen(pStr))
- {
- return;
- }
- pList.r[i] = pStr[i];
- }
- }
- //查找函数
- int findPoint(char *pData,int nlen,char cData)
- {
- int i = 0;
- for (i = 0; i < nlen; i++)
- {
- if (pData[i] == cData)
- {
- break;
- }
- }
- return i;
- }
- //删除函数
- void del(char *pData,int nlen,char cData)
- {
- int nPoint = findPoint(pData,nlen,cData);
- if (nPoint == nlen)
- {
- //没有找到
- return;
- }
- int i = 0;
- for (i = 0; i < nlen; i++)
- {
- if (i >= nPoint)
- {
- pData[i] = pData[i+1];
- }
- }
- }
- void deleteData(struct seqlist &pList)
- {
- char sData[1024] = {0};
- memset(sData,0,1024);
- printf("请输入要删除的元素:");
- scanf("%s",sData);
- del(pList.r,1024,sData[0]);
- };
- //输出函数
- void showList(struct seqlist *pList,int nRows)
- {
- int i = 0;
- for (i = 0; i < nRows; i++)
- {
- printf("%s\n",pList[i].r);
- }
- }
- int _tmain(int argc, _TCHAR* argv[])
- {
- struct seqlist *pList = NULL;
- int nRows = createData(pList);
- int i = 0;
- for (i = 0; i < nRows; i++)
- {
- addData(pList[i]);
- deleteData(pList[i]);
- }
- showList(pList,nRows);
- int nQuit = 0;
- while (1 != nQuit)
- {
- printf("请输入1退出:");
- scanf("%d",&nQuit);
- }
- return 0;
- }
复制代码 结果如图:
|
-
|