天天看點

文章編輯----C語言實作

#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();

}

繼續閱讀