提示说一个小写字母两面精确地被大写字母包围,应该指的是周围没有四个而仅仅这两个像这样的:xXXXxXXXx的中间的那个应该是符合条件的

好了标题是re,提示该是使用正则表达式,网页源码里有待处理的字符串,所以这里应该是主要考察的正则表达式

C++里的正则表达式有一些类库类实现,有多个实现,他们是什么以及比较可以参考这里

这里打算采用比较出名的boost,boost好像不止包含正则表达式的功能,具体介绍参照维基

直接包含它显示说没有这个文件,那么它还是需要安装的,我猜安装它可能也需要一些曲折的路线

不管了先找找怎么安装

安装这个有个工具叫做nuget工具,nuget好像只能在windows下使用,但是确实能像pip这类的工具一样使用

执行:

nuget install boost

提示安装成功,不知道安装到哪里了,c盘查找,在xx用户文件里

运行mingw g++编译没通过,说找不到该文件或目录

去boost安装目录,看到build文件夹下有个boost.targets的文件,打开里面显示

<?xml version="1.0" encoding="utf-8"?>
<Project ToolVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)..\..\lib\native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup />
</Project>

好像说明了编译器位于哪里。。。好吧改改能不能用?我不知道怎么改,算了

本来想下载一个vs-studio,但是大而且提示我windows版本低,如果vs-studio确实能减少我很多的事情,也可以用用

我把后一个作为比较好的解决方案,但是我现在不打算执行,我想直接用string标准库和char来实现以下这个问题的求解

目的:

文本处理,找到类似于xXXXxXXXx形式的中间的字母

解决方案:

 # include <iostream>
// # include <math.h>
# include <string>
# include <fstream>
# include <cctype> using std::string;
using std::cout;
// using std::cin;
using std::endl;
using namespace std; void mathRules(string row)
{
for (int i = ; i < row.size() - ; ++i)
{
if (islower(row[i]) and isupper(row[i + ]) and isupper(row[i + ]) and isupper(row[i + ])
and isupper(row[i - ]) and isupper(row[i - ]) and isupper(row[i - ]) and islower(row[i + ])
and islower(row[i - ]) )
{
cout << row[i];
}
}
} int main()
{
ifstream infile;//definate fstream
string temp; //define a var to store strings infile.open("myfile.txt"); //open the file while (getline(infile, temp)) //use getline() fuction
{ mathRules(temp);
// cout << temp << endl;
}
return ;
}

问题以及解决方案:

问题是我没有正则表达式,但是用了cctype也能解决

C++也有丰富的类库不过安装使用扩散的方便性普及性以及程度都不够

使用visualstudio可以减少很多劳动

在C++管理类库的东西是nuget但是只能在win下用,而且要结合vs使用

注:这里之所以没说问题的答案是因为两点:

1.答案隐含在代码里面,如果你能够运行正确代码,那么会得到答案

2.已有同学整理过并发布在网上,不做重复劳动

pythonchallenge之C++学习篇-03的更多相关文章

  1. pythonchallenge之C++学习篇-01

    字符处理时每个语言都具备的一种功能,其中还有一些语言因此出名,比如perl,shell,还有一些函数式的编程语言 C语言中的字符串与数组和指针联系的比较紧密,因此可以这样生命字符串*p="h ...

  2. pythonchallenge之C++学习篇-00

    前言 最近学习下C++,之前是python的用户,python解释器有诸多实现,其中最出名的要数C实现了,而且很多python的扩展模块可能要用C或者C++来写的,所以很有必要学习下C++了 为了避免 ...

  3. 【从零开始自制CPU之学习篇03】锁存器与触发器

    本篇学习了两种锁存器:SR Latch和D Latch,一种触发器:D flip flop SR Latch:SR—锁存器 初始状态下,S和R都为0,Q和Q‘随机有一个为1另一个 为0(取决于电流速度 ...

  4. pythonchallenge之C++学习篇-02

    第二关任然是一个字符处理的关卡 查看网页源码发现有一大串字符需要处理,这么多的字符如果放在源代码里就很不好了 所以要用到C++对文件的操作,用到的头文件是fstream 这里参照了这个博文 对文件处理 ...

  5. Objective-C学习篇03—继承

    大纲: 继承的基本概念 自定义初始化方法 便利构造器方法 重写description方法 一 继承基本概念 程序里的对象和"人类"的对象是一样的,高富帅继承了父母,自然就拥有了父母 ...

  6. iOS系列 基础篇 03 探究应用生命周期

    iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本 ...

  7. js学习篇1--数组

    javascript的数组可以包含各种类型的数据. 1. 数组的长度 ,直接用 length 属性; var arr=[1,2,3]; arr.length; js中,直接给数组的length赋值是会 ...

  8. Tomcat集群配置学习篇-----分布式应用

    Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问 ...

  9. (转载)OC学习篇之---概述

    前言 终于开启了OC的学习篇了,之前由于工作上的事,学习就一直搁浅了,不过最近由于各种原因,感觉必须要开启iOS的开发旅程了,不然就老了.因为之前一直是做Android的,所以学习iOS来就没那么费劲 ...

随机推荐

  1. nginx和apache的一些比较

    1.两者所用的驱动模式不同. nginx使用的是epoll的非阻塞模式事件驱动. apache使用的是select的阻塞模式事件驱动. 2.fastcgi和cgi的区别 当用户请求web服务的时候,w ...

  2. K3安装记录

    安装的某些客户端没有客户端管理工具,测试问题所在 K3安装目录选择到D盘就可以,它自动生成kingdee\k3路径

  3. code vs1262 不要把球传我(组合数学) 2012年CCC加拿大高中生信息学奥赛

    1262 不要把球传我 2012年CCC加拿大高中生信息学奥赛  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解  查看运行结果     题目描述 De ...

  4. shiro的简单使用

    <?xml version="1.0" encoding="utf-8"?> <web-app xmlns:xsi="http:// ...

  5. 【leetcode】Linked List Cycle II (middle)

    Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Foll ...

  6. 【linux】find删除指定时间之前的文件

    今天磁盘满了,想删掉一些老的日志文件.开始想写个python脚本,转念一想,可能shell脚本好点.结果发现,根本不用写脚本,一个find指令就可以解决问题了. 先上指令 -exec rm {} \; ...

  7. 安装Odoo9出现的could not execute command "lessc"问题

    解决方案: apt-get install node-less

  8. Java实现文件复制的四种方式

    背景:有很多的Java初学者对于文件复制的操作总是搞不懂,下面我将用4中方式实现指定文件的复制. 实现方式一:使用FileInputStream/FileOutputStream字节流进行文件的复制操 ...

  9. 类中实现 Dispose And Finalize

    1.Dispose方法中,应该使用GC.SuppressFinalize防止GC调用Finalize方法,因为显示调用Dispose比较好. 2.Disposed字段保证了两次调用Dispose方法不 ...

  10. 解决webstorm乱码

    新的web前端学习群,120342833,欢迎大家一起学习,以前在web学习群里的看到了加下..