//str.c
#include"stdio.h"
#include"str.h"
void main()
{
int n,flag=0;
int i=4,j=6;
char *str,*sub;
str=(char*)malloc(sizeof(char)*100);
sub=(char*)malloc(sizeof(char)*100);
printf(" 串子系统 \n");
printf("********************************************************\n");
printf("* 1---------输入字串 *\n");
printf("* 2---------连接字串 *\n");
printf("* 3---------取出字串 *\n");
printf("* 4---------删除字串 *\n");
printf("* 5---------插入字串 *\n");
printf("* 6---------查找字串 *\n");
printf("* 7---------比较字串 *\n");
printf("* 8---------显示字串 *\n");
printf("* 0---------返回 *\n");
printf("********************************************************\n");
while(!flag){
printf("请选择菜单号(0--8): ");
scanf("%d",&n);
switch(n){
case 1:printf("please input your string : ");scanf("%s",str);break;
case 2:strcat(str,sub);break;
case 3:sub=getsubstr(str,i,j);break;
case 4:delsubstr(str,i,j);break;
case 5:inssubstr(str,sub,i);break;
case 6:i=findsubstr(str,sub);break;
case 7:strcmp(str,sub);break;
case 8:printf("%s\n",str);break;
case 0:flag=1;break;
}
}
}
//str.h;
#include"string.h"
#include"stdlib.h"
char* getsubstr(char *str,int begin,int end)
{
char *tmp;
int i=0,k=0;
tmp=(char*)malloc(sizeof(char)*100);
for(i=begin;i<=end;i++){
tmp[k++]=str[i];
}
tmp[k]='\0';
return tmp;
}
char * delsubstr(char *str,int begin ,int end)
{
char *tmp;
tmp=&str[end+1];
str[begin]='\0';
strcat(str,tmp);
return str;
}
char *inssubstr(char *str,char *sub,int index)
{
char *tmp;
tmp=(char*)malloc(sizeof(char)*100);
strcpy(tmp,&str[index]);
str[index]='\0';
strcat(str,sub);
strcat(str,tmp);
return str;
}
int findsubstr(char *str,char *sub)
{
int i,j,k;
for(i=0;i k=i; for(j=0;j if(str[k++]!=sub[j]) break; } if(j==strlen(sub)) return i; } return -1; } 只能按照你的意思大致做做了~~~细节很不足~~~~~