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来就没那么费劲 ...
随机推荐
- poj3341
AC自动机,用40^4 * 50 * 10的空间进行dp. 最大的难点在于hash. hash一个数列f,数列中的每一位都有一个上限g,即f[i]<=g[i]. 那么可以将该数列hash为这样一 ...
- Java 多线程Socket编程通讯--实现聊天室代码
1.创建服务器类 import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import ja ...
- irssi忽略退出,加入消息
IRSSI: IGNORE JOINS, PARTS, QUITS AND NICKS MESSAGES I use IRC on a daily basis and my client of cho ...
- C#操作字符串方法总结<转>
staticvoid Main(string[] args) { string s =""; //(1)字符访问(下标访问s[i]) s ="ABCD"; Co ...
- ffmpeg-20160629-git-bin.7z
ESC 退出 0 进度条开关 1 屏幕原始大小 2 屏幕1/2大小 3 屏幕1/3大小 4 屏幕1/4大小 S 下一帧 [ -2秒 ] +2秒 ; -1秒 ' +1秒 下一个帧 -> -5秒 f ...
- win8开发wpf程序遇到的无语问题
在设置wpf程序全屏后,点击某个listbox列表,发现程序下面出现了任务栏. 查找解决答案未果.仔细一想可能是win8系统的问题. 最后试着把listbox的滚动条去掉了,问题解决. 原因:当程序中 ...
- Django~static files (e.g. images, JavaScript, CSS)
django.contrib.staticfiles settings.py django.contrib.staticfiles is included in your INSTALLED_APPS ...
- Effective C++ -----条款03:尽可能使用const
如果关键字const出现在星号左边,表示被指物是常量:如果出现在星号右边,表示指针自身是常量:如果出现在星号两边,表示被指物和指针两者都是常量. char greeting[] = " he ...
- Android 6.0的运行时权限
原文 http://droidyue.com/blog/2016/01/17/understanding-marshmallow-runtime-permission/ 主题 安卓开发 Andr ...
- Keepalived虚拟ip
linux下如何设置vip(虚拟ip) 在做HA的时候需要为服务器设计虚拟IP,也就是一个主机对应多个IP地址?刚听起来好神奇,原来这样也是可能的看了下面的这个链接 自己配了一下http://hi.b ...