C++程序设计实践指导1.9统计与替换字符串中的关键字改写要求实现
改写要求1:将字符数组str改为字符指针p,动态开辟存储空间
改写要求2:增加统计关键字个数的函数void CountKeyWords()
改写要求3: 增加替换函数void FindKeyWords()
#include <cstdlib>
#include <iostream>
#include <string>
using namespace std; class WORDNUM
{
char *p;
double c;
public:
WORDNUM(char *s)
{
p=new char[strlen(s)];
strcpy(p,s);
c=;
}
void process();
void CountKeyWords(string key[],int len);
void FindKeyWords(string key[],string swapkey[],int len);
void print()
{
char* r=new char[strlen(p)];
strcpy(r,p);
while(*r!='\0')
cout<<*(r++);
cout<<endl;
cout<<"num="<<c<<endl;
}
}; void WORDNUM::CountKeyWords(string key[],int len)
{
int i=len;
while(i)
{
double sameword=;
char* r=new char[strlen(p)];
strcpy(r,p);
char* q=new char[key[i-].length()];
strcpy(q,key[i-].c_str());
char* find=strstr(r,q);
while(find)
{
memset(find, ' ', strlen(q));
sameword++;
find=strstr(find,q); } cout<<key[i-]<<"的个数为:"<<sameword<<"占全部字符"<<(sameword/c)*<<"%"<<endl;
i--;
}
} void WORDNUM::FindKeyWords(string key[],string swapkey[],int len)
{
int i=len;
string temp;
temp=p;
int pos=temp.find(key[i-]);
while(i)
{
while(pos!=-)
{
temp.replace(pos,key[i-].length(),swapkey[i-]);
pos=temp.find(key[i-]); }
i--;
}
memset(p,,sizeof(p));
strcpy(p,temp.c_str());
} void WORDNUM::process()
{
int word=;
int len;
len=strlen(p);
char* r=new char[strlen(p)];
strcpy(r,p);
for(int i=;i<len;i++)
{
if(((r[i]>='a'&&r[i]<='z')||(r[i]>='A'&&r[i]<='Z'))&&word)
{
c++;
word=;
}
else if(r[i]==' ')
word=;
}
} int main(int argc, char *argv[])
{
string key[]={"nice","girl"};
string swapkey[]={"ugly","boy"};
int len=sizeof(key)/sizeof(key[]);
string str="She is a nice nice girl girl girl hi";
char* split=new char[strlen(str.c_str())];
strcpy(split,str.c_str());
WORDNUM w(split);
w.process();
w.CountKeyWords(key,len);
w.print();
w.FindKeyWords(key,swapkey,len);
w.print();
system("PAUSE");
return EXIT_SUCCESS;
}
C++程序设计实践指导1.9统计与替换字符串中的关键字改写要求实现的更多相关文章
- C++程序设计实践指导1.8求指定范围内的所有素数改写要求实现
改写要求1:以指针为数据结构动态开辟存储空间 #include <cstdlib> #include <iostream> using namespace std; class ...
- 使用PHP的strstr()函数来统计一段字符串中元音字母的个数(区分大小写)
<?php/**练习:统计一段字符串中所有元音字母的个数(区分大小写)*/$str='This is a test file.'; //原始字符串echo $str.'<br>'; ...
- 统计字符在字符串中第n次出现的位置
输入一个字符串s,一个数字n和一个字符c,统计这个字符c在字符串s中第n次出现的位置 输入格式: 输入3行.第1行是字符串s,第2行是数字n,第3行是被查找的字符c. 输出格式: 第n个字符在字符串中 ...
- C++程序设计实践指导1.15找出回文数改写要求实现
改写要求1:用单链表实现 #include <cstdlib> #include <iostream> using namespace std; struct LinkNode ...
- C++程序设计实践指导1.14字符串交叉插入改写要求实现
改写要求:1:以指针为数据结构开辟存储空间 改写要求2:被插入字符串和插入字符串不等长,设计程序间隔插入 如被插入字符串长度为12,待插入字符串长度为5 则插入间隔为2 改写要求3:添加函数Inser ...
- C++程序设计实践指导1.13自然数集中找合数改写要求实现
改写要求1:用单链表实现 改写要求2:析构函数中依次将链表结点删除 #include <cstdlib> #include <iostream> using namespace ...
- C++程序设计实践指导1.12数组中数据线性变换改写要求实现
改写要求1:分别用指针pa.pb代替数组 改写要求2:从键盘输入data元素 元素个数任意,输入0结束 #include <cstdlib> #include <iostream&g ...
- C++程序设计实践指导1.10二维数组元素换位改写要求实现
改写要求1:改写为以单链表和双向链表存储二维数组 改写要求2:添加函数SingleLinkProcess()实现互换单链表中最大结点和头结点位置,最小结点和尾结点位置 改写要求3:添加函数Double ...
- C++程序设计实践指导1.1删除序列中相同的数改写要求实现
改写要求1:改写为以指针为数据结构 #include <iostream> #include <cstdlib> using namespace std; class ARP ...
随机推荐
- (转) 学习C++ -> 引用( References )
学习C++ -> 引用( References ) 一.引用的介绍 引用就是某一变量(目标)的一个别名, 相当于同一个人有了两个名字, 无论喊哪一个名字实际上都是指的同一个人. 同样, 在 ...
- Delphi Length函数
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- No.1_1 java语言基础_学习笔记
import java.util.Scanner; public class HelloWorld { static final double PI=3.14; static int x=125; / ...
- 使用dict和set
Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度. d = {'Michael': 95, ...
- R语言数据合并使用merge数据追加使用rbind和cbind
R语言中的横向数据合并merge及纵向数据合并rbind的使用 我们经常会遇到两个数据框拥有相同的时间或观测值,但这些列却不尽相同.处理的办法就是使用merge(x, y ,by.x = ,by.y ...
- 异常处理与调试 - 零基础入门学习Delphi50
异常处理与调试 让编程改变世界 Change the world by program 异常处理与调试 在应用程序开发中如何检测.处理程序的运行错误是一个很重要的问题. 有些错误是无法控制的. 如何处 ...
- C++中利用libxl操作Excel表格
libxl是一款操作excel的商业库,支持C.C++.C#和Delphi.下文利用libxl在C++中实现了从excel文档的表1中随机挑选记录,保存到新建的表中.以下为代码: #include & ...
- c#一个分页控件的例子
一.首先下载一个dll,地址:http://pan.baidu.com/share/link?shareid=1628211605&uk=1342867987 二.添加到项目中 三.添加引用 ...
- [转]让Sublime Text2支持浏览器中预览
转自http://www.imququ.com/post/view-sublime-text-2-file-in-browser.html 1.点击菜单Tools -> New Plugin.. ...
- SCSI磁盘标准的架构与文档
来自scsi标准的官方网站http://t10.org/,具体的文档可以去浏览官方网站. (*) This chart reflects the currently approved SCSI pro ...