pythonchallenge之C++学习篇-03
提示说一个小写字母两面精确地被大写字母包围,应该指的是周围没有四个而仅仅这两个像这样的: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的更多相关文章
- pythonchallenge之C++学习篇-01
字符处理时每个语言都具备的一种功能,其中还有一些语言因此出名,比如perl,shell,还有一些函数式的编程语言 C语言中的字符串与数组和指针联系的比较紧密,因此可以这样生命字符串*p="h ...
- pythonchallenge之C++学习篇-00
前言 最近学习下C++,之前是python的用户,python解释器有诸多实现,其中最出名的要数C实现了,而且很多python的扩展模块可能要用C或者C++来写的,所以很有必要学习下C++了 为了避免 ...
- 【从零开始自制CPU之学习篇03】锁存器与触发器
本篇学习了两种锁存器:SR Latch和D Latch,一种触发器:D flip flop SR Latch:SR—锁存器 初始状态下,S和R都为0,Q和Q‘随机有一个为1另一个 为0(取决于电流速度 ...
- pythonchallenge之C++学习篇-02
第二关任然是一个字符处理的关卡 查看网页源码发现有一大串字符需要处理,这么多的字符如果放在源代码里就很不好了 所以要用到C++对文件的操作,用到的头文件是fstream 这里参照了这个博文 对文件处理 ...
- Objective-C学习篇03—继承
大纲: 继承的基本概念 自定义初始化方法 便利构造器方法 重写description方法 一 继承基本概念 程序里的对象和"人类"的对象是一样的,高富帅继承了父母,自然就拥有了父母 ...
- iOS系列 基础篇 03 探究应用生命周期
iOS系列 基础篇 03 探究应用生命周期 目录: 1. 非运行状态 - 应用启动场景 2. 点击Home键 - 应用退出场景 3. 挂起重新运行场景 4. 内存清除 - 应用终止场景 5. 结尾 本 ...
- js学习篇1--数组
javascript的数组可以包含各种类型的数据. 1. 数组的长度 ,直接用 length 属性; var arr=[1,2,3]; arr.length; js中,直接给数组的length赋值是会 ...
- Tomcat集群配置学习篇-----分布式应用
Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问 ...
- (转载)OC学习篇之---概述
前言 终于开启了OC的学习篇了,之前由于工作上的事,学习就一直搁浅了,不过最近由于各种原因,感觉必须要开启iOS的开发旅程了,不然就老了.因为之前一直是做Android的,所以学习iOS来就没那么费劲 ...
随机推荐
- FindinFiles - Windows文件内查找插件
FindInFiles for Windows 今天分享一个不错的插件工具:FindInFiles.如其名,其功能和Visual Studio的Ctrl+H快捷键类似,方便Windows使用者在资源管 ...
- Gson简要使用笔记
最近在做一个java web service项目,需要用到jason,本人对java不是特别精通,于是开始搜索一些java平台的json类库. 发现了google的gson,因为之前对于protoco ...
- android入门到熟练(五)---广播
1.广播类型:标准广播和有序广播.标准广播是异步广播在广播发出之后所有接收器几乎会同一时刻接收到,没有先后顺序,效率高,但无法被截断.有序广播则是同步广播,同一时刻只能一个接收器接收这条消息,等执行完 ...
- 【leetcode】Sort List (middle)
Sort a linked list in O(n log n) time using constant space complexity. 思路: 用归并排序.设输入链表为S,则先将其拆分为前半部分 ...
- myEclipse中改了项目名,出现的问题 和 错误java.io.IOException: tmpFile.renameTo(classFile) failed
今天遇到一个很头疼的问题,建的一个新项目,后来因为一些原因把项目名改了,之后就做了一些业务,但运行时总是没有反应,后来在myEclipse工作空间下的webapps文件中发现, 部署的文件名和项目名称 ...
- ajax+bootstrap做弹窗
建页面,引入bootstrap弹窗 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- html与js传json值给php
//一段js代码 var data = {}, act = [], list = []; $('.set').find('input, textarea').each(function() { act ...
- jsDoc的使用
nodeJS使用: 直接:npm install jsdoc -g使用:jsdoc [name].js 简介 JsDoc Toolkit 是一款辅助工具,你只需要根据约定在 JavaScript 代码 ...
- Stanford大学机器学习公开课(四):牛顿法、指数分布族、广义线性模型
(一)牛顿法解最大似然估计 牛顿方法(Newton's Method)与梯度下降(Gradient Descent)方法的功能一样,都是对解空间进行搜索的方法.其基本思想如下: 对于一个函数f(x), ...
- IOS8下,百度地图无法定位解决办法
通过在论坛中搜索,找到解决办法,我只是论坛的搬运工.分享如下: 1.在info.plist中加入: NSLocationAlwaysUsageDescription=YES NSLocatio ...