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;
}