自己写了一段代码如下,通过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;
}
结果如图:
|