📄 wenzhangbianji2.txt
字号:
// 55.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<iostream>
#include<string>
#define N 1000
using namespace std;
char str[N][81];
int l[N];
int n;
char a[81];
void input() //输入要统计的字符串
{
int k;
char c;
k=0;
while(1)
{
scanf("%c",&c);
if(c=='\n')break;
a[k]=c;
k++;
}
a[k]='\0';
}
void print() //输出用户输入的各行字符
{
int i,j;
for(i=0;i<=n;i++)
{
for(j=0;j<l[i];j++)
printf("%c",str[i][j]);
}
printf("\n");
}
void tongji() //统计
{
int i,j;
int wz,kg,sz,sum; //分别记录文字个数,空格个数,数字个数,总数
wz=kg=sz=sum=0;
for(i=0;i<=n;i++)
{
for(j=0;j<l[i];j++)
{
if(str[i][j]!='\n')
sum++;
if((str[i][j]<='z'&&str[i][j]>='a')||(str[i][j]<='Z'&&str[i][j]>='A'))
wz++;
if(str[i][j]<='9'&&str[i][j]>='0')
sz++;
if(str[i][j]==' ')
kg++;
}
}
printf("\n全部字母数为:%d\n",wz);
printf("数字个数为:%d\n",sz);
printf("空格个数为:%d\n",kg);
printf("文章总字数为:%d\n\n",sum);
}
void chazhao() //统计某一字符串在文章中出现的次数
{
int i,j,k,l1,y;
int x=0;
l1=strlen(a);
for(i=0;i<=n;i++)
{
for(j=0;j<l[i];j++)
{
y=1;
if(j+l1==l[i])break;
for(k=0;k<l1;k++)
{
if(a[k]!=str[i][j+k]){y=0;break;}
}
if(y)x++;
}
}
for(i=0;i<l1;i++)
printf("%c",a[i]);
printf(" 在文中出现次数为:%d\n\n",x);
}
void del() //删除某一字符串并输出
{
int i,j,k,l1,y;
bool b[N][81];
l1=strlen(a);
memset(b,0,sizeof(b));
for(i=0;i<=n;i++)
{
for(j=0;j<l[i];j++)
{
y=1;
if(j+l1==l[i])break;
for(k=0;k<l1;k++)
{
if(a[k]!=str[i][j+k]&&!b[i][j+k])//如果不匹配,将y标记为0,并重新查找
{
y=0;
break;
}
}
if(y)
{
for(k=0;k<l1;k++)
b[i][j+k]=1; //将b[i][j+k]标记为1,说明str[i][j+k]应删去
}
}
}
printf("\n删除该字符串后文章:\n");
for(i=0;i<=n;i++)
{
for(j=0;j<l[i];j++)
if(!b[i][j])printf("%c",str[i][j]);
}
}
void solve()
{
int z;
while(1)
{
printf("输入您需要的操作(选择序号):\n");
printf("1.输出原文\n");
printf("2.统计文章字数\n");
printf("3.统计某一字符串在文章中出现的次数\n");
printf("4.删除某一字符串并输出文章\n");
printf("5.结束\n");
scanf("%d",&z);
if(z==1)print(); //输出原文
if(z==2)tongji();
//分别记录文字个数,空格个数,数字个数,总数
if(z==3)
{
printf("\n输入要统计的字符串:\n"); //统计某一字符串在文章中出现的次数
getchar();
input();
chazhao();
}
if(z==4)
{
printf("\n输入要删除的字符串:\n"); //删除某一字符串
getchar();
input();
del();
}
if(z==5)break;
}
}
int main()
{
FILE *fin=fopen("data.in","a+"); // 文件输入,在目录下创一个data.in的文档
char c;
n=0;
memset(l,0,sizeof(l));
while(fscanf(fin,"%c",&c)!=EOF)
{
str[n][ l[n] ]=c;
l[n]++;
if(c=='\n')n++;
if(l[n]>80){printf("error\n\n");break;}
}
solve();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -