用C++实现对文章单词的查找及替换

1.单词查找

 在字符串中查找某个单词,统计其出现的次数

查找时不区分单词的大小写

例如:在“The lion is the king of the jungle.”中查找单词“the”,统计结果为 3 次

#include<iostream>
#include<cmath> 
#include<stdlib.h>
#include<iomanip>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
	char a[100],b[30];
	cout<<"请输入字符串:";
	gets(a);
	cout<<"输入查找单词:";
	gets(b);
	int len1=strlen(a);//获取a字符串的长度 
	int len2=strlen(b);//获取b字符串的长度 
	strlwr(a);//转换为小写 
	int i,j,k,cnt=0;
	for(i=0;i+len2<=len1;i++)//从头历经 
	{
		for(j=i,k=0;k<len2;j++,k++)//字符逐个相比 
		{
			if(a[j]!=b[k])//遇到不相等的字符跳出 
			break;
		}
		if(j==i+len2&&a[j]==' ')//如果全部相等且前一个字符为空计数加一 
		cnt++;
	}
	cout<<b<<"的个数为:"<<cnt;
}

2、单词替换

编写一个函数,将字符串中的某个单词,替换成指定单词

int str_rep (char str1[], char str2[], char str3[])

str1:需要处理的字符串

str2:待替换的单词

str3:用于替换的单词

返回替换成功的次数

替换时区分单词的大小写

例如将“I have 3 books, a Chinese book, an English book and a math book.” 中的单词 book,

替换为单词 course

替换结果为“I have 3 courses, a Chinese course, an English course and a math course.”

成功替换次数为 4

#include<iostream>
#include<cmath> 
#include<stdlib.h>
#include<iomanip>
#include<cstdio>
#include<cstring>
using namespace std;
void str_rep (char *str1, char *str2, char *str3)
{
	char s[100];//定义一个空字符串 
	char *p;//定义一个指针 
	int n2=strlen(str2);//获取字符串2的长度 
	int sum=0;
	while(p=strstr(str1,str2))/*查找str1中是否有str2,
	有的话将str1中的str2字符串的首地址存入p中*/ 
	{
		*p='\0';//截断str1 
		strcpy(s,str1);//将str1存入s中 
		strcat(s,str3);//将str2拼接到s中的str1后面 
		strcat(s,p+n2);//将截断后的后半部分接到是中 
		strcpy(str1,s);//将s中的字符串放入str1中 
		sum++; 
	}
	cout<<str1<<endl;
	cout<<"成功替换次数为:"<<sum;
}
int main()
{
	char a[100],b[100],c[100];
	cout<<"请输入语句:"; 
	gets(a);
	cout<<"请输入目标词:";
	gets(b);
	cout<<"请输入替换词:";
	gets(c);
	cout<<"替换后的结果为:";
	str_rep(a,b,c);
	return 0;
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值