#include<stdio.h>
#include<string.h>
#define N 20  /* 文章的行数  */
char wz[N][80]; /* 存储文章的字符数组 ,为全局变量*/
/*输入函数*/
void readdat()
{FILE *fp;
int i,j,len;
char *str;
if(!(fp=fopen("E:/yy/wzin.dat","r+")))/*打开文件*/
  printf("The file can't found!\n");
for(i=0;i<N;i++)
  fgets(wz[i],80,fp);/*读文件*/
}
/*输出函数*/
void out()
{int i=0;
for(i=0;i<N;i++)
  printf("%s",wz[i]);
}
int countword(int n1,int n2)
/*统计ASC 码在n1与n2之间的字符*/
{int i,j,len;
int n=0;  /*统计字符数*/
for(i=0;i<N;i++)
  {len=strlen(wz[i]);
    for(j=0;j<=len;j++)
      if(wz[i][j]>=n1&&wz[i][j]<=n2)/*wz[i][j]的ASC 码在n1与n2之间,n++*/
      n++;
  }
return n;
}
int cz(char *s) /*查某一字符串出现的次数*/
{int n=0;
int i;
int lens;/*要查字符串 *S 的长度*/
char *c;
lens=strlen(s);
for(i=0;i<N;i++)
  { c=strstr(wz[i],s);/*字符串*S在文章第i 行第一次出现的位置*/
    while(*c!=0)
    {n++;
    c=strstr(c+lens,s);/*字符串*S在文章第i 行下一次出现的位置*/
    }
}
return n;
}
void del(char *s)
{int i,j,k,leni,lenc,lens;
int p;
char *c;
lens=strlen(s);/*要删除字符串的长度*/
for(i=0;i<N;i++)
{ c=strstr(wz[i],s);/*字符串s 在文章第i行首次出现的位置*/
  while(c!=0)/*c=0 则表明字符串s 在文章第i行没有出现*/
  {leni=strlen(wz[i]);/*文章第i 行的长度*/
    lenc=strlen(c);/*从字符串s 在文章第i行首次出现的位置处后的字符串的长度*/
      p=leni-lenc;/* 两个长度的差  从此行的第p 个位置开始删除*/
    for(k=1;k<=lens;k++)/*删除lens次*/
    {
      for(j=p;j<=leni;j++)
        wz[i][j]=wz[i][j+1];/*字符前移*/
          leni=strlen(wz[i]);
          wz[i][j-1]='\0';
          leni=strlen(wz[i]);
        }
    c=strstr(wz[i],s);
  }
}
}
main()
{
int word,space,num,zifu;/*字母数,空格数,数字数,字符数*/
int n; /*某字符串数*/
int leni;
int i=0,j=0;
char s1[80],*s;
printf("Where do you want the file come from ?\n ");/*从文件读入数据,还是从键盘输入数据*/
printf("From weijian please input 1 \nfrom keybrod please input 2 \n");/*从文件读入数据输入1,还是从键盘输入数据输入2*/
scanf("%d",&n);
getchar();
switch(n)
{case 1:
    readdat();
    break;
  case 2:
    printf("please input the file untill @@\n");
        gets(s1);
    while(strcmp(s1,"@@")!=0&&i<N)
    {
    strcpy(wz[i],s1);/*将s1中的内容复制到wz[i]中*/
    leni=strlen(s1);
    wz[i][leni]='\n';
        gets(s1);
    i++;
    }
    break;
  default:
    printf("Wrong input !\n");
    break;
}
printf("The file's content:\n ");
out();
word=countword('a','z')+countword('A','Z');/*统计字母*/
printf("\nThe total word is :\t%d\n",word);
space=countword(' ',' ');/*统计空格*/
printf("The total space is :\t%d\n",space);
num=countword('0','9');/*统计数字*/
printf("The total shuzi is :\t%d\n",num);
/*统计所有字符*/
zifu=countword(32,44)+num+countword(59,94)+countword(97,126)+countword(174,175);
printf("The total zifu is :\t%d\n",zifu+space);
/*字符串的查*/
printf("\nplease input a srting:\t");
scanf("%s",s);
n=cz(s);
printf("\nThe string %s chuxian %d ci \n",s,n);
getchar();
/*字符串的删除*/
printf("\nWhich string do you want to del:\n");
printf("please input a string :\t");
scanf("%s",s);
printf("\nBefore del string %s:\n",s);
  out();
n=cz(s);
if(n==0)
  printf("\nCan't find the string!\n");
else
  {
  del(s);
字符串长度0到59
  printf("\nAfter del string %s :\n",s);
  out();
  }
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。