#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 3
char str[N][80];
int i,j;
int len[N];
int dnum=0,cnum=0,snum=0,anum=0,strnum=0;
void menu();
int input();
void output();
void count();
void checkstring();
void outputdelstr();
int main()
{
char key,t;
printf("課程設計:文章編輯");
printf("/n/n------------------------------------WELCOME-------------------------------------");
printf("/n");
for(i=0;i<N;i++)
{
len[i]=input();
anum+=len[i];
}
for(i=0;i<N;i++)
{
count();
}
system("pause");
while(1)
{
system("cls");
printf("課程設計:文章編輯");
printf("/n/n------------------------------------WELCOME-------------------------------------");
printf("/n");
menu();
printf("/n");
printf("請輸入操作(1.2.3.4.5):");
key=getchar();
printf("/n");
switch(key)
{
case '1':
{
output();
}break;
case '2':
{
printf("/n文章中全部字母個數為:%d /n數字個數為:%d /n空格個數為:%d /n文章總字數為:%d /n",cnum,dnum,snum,anum);
}break;
case '3':
{
fflush(stdin);
checkstring();
}break;
case '4':
{
fflush(stdin);
outputdelstr();
}break;
case '5': exit(0);
default:
{
printf("輸入錯誤!/n");
}break;
}
t=getchar();
system("pause");
}
system("pause");
return 0;
}
void menu()
{
printf("********************************************************************************");
printf("/t/t/t1.------輸出文章/n");
printf("/t/t/t2.------輸出統計字數/n");
printf("/t/t/t3.------統計字元串/n");
printf("/t/t/t4.------删除字元串/n");
printf("/t/t/t5.------退出系統/n");
printf("********************************************************************************/n");
}
int input()
{
printf("請輸入第 %d 行文字/n",i+1);
gets(str[i]);
return strlen(str[i]);
}
void output()
{
printf("你輸入的文章為:/n");
for(i=0;i<N;i++)
{
puts(str[i]);
}
}
void count()
{
for(j=0;j<len[i];j++)
{
if(str[i][j]>='a' && str[i][j]<='z') cnum++;
if(str[i][j]>='A' && str[i][j]<='Z') cnum++;
if(str[i][j]>='0' && str[i][j]<='9') dnum++;
if(str[i][j]==' ') snum++;
}
}
void checkstring()
{
char cstr[20];
char *p1,*p2;
printf("請輸入需要統計的字元串:/n");
gets(cstr);
p2=cstr;
for(i=0;i<N;i++)
{
p1=str[i];
while(strstr(p1,p2)!=NULL)
{
strnum++;
p1=strstr(p1,p2)+1;
}
}
printf("字元串:%s 在文章中出現的次數為:%d /n",cstr,strnum);
}
void outputdelstr()
{
char cstr[20];
char *p,*p1,*p2;
int len;
printf("請輸入要删除的字元串:/n");
gets(cstr);
len=strlen(cstr);
p2=cstr;
for(i=0;i<N;i++)
{
p1=str[i];
while(strstr(p1,p2)!=NULL)
{
p=p1=strstr(p1,p2);
while(*(p+len-1))
{
*p=*(p+len);
p++;
}
}
}
printf("删除字元串:%s 後文章為: /n",cstr);
output();
}