如何解析包含矩形数据序列的字符串
How to parse a string containing a sequence of rectangles data?
我应该以以下格式解析包含一些数据的字符串:
- 在字符串中命名的图像与零个,一个或多个矩形相关联;
- 矩形的坐标用圆括号括起来,由四个以逗号分隔的整数组成;
- 每个矩形与下一个矩形之间用逗号分隔;
- 字符串以分号结束
字符串示例:
"image.png": (xmin, ymin, xmax, ymax), (xmin, ymin, xmax, ymax);
我想检索以下信息:
- a包含图像文件名的
string
,例如image.png
; - a包含矩形序列的
vector<Rect>
。
Rect是下面定义的结构体:
struct Rect
{
int xmin;
int ymin;
int xmax;
int ymax;
}
如何在不使用外部库的情况下以简单的方式处理这个问题?
为了以一种简单的方式处理这个问题,您可以使用带有开关情况的自动化实现。你只需要10个州。这些州的名单如下:INIT、文件名、结肠癌、PARENTHSIS、XMIN YMIN, XMAX YMAX,逗号,接受。初始化state
为INIT
。所以switch case语句是:
ch = getNextChar();
switch( state )
{
case INIT:
if( ch == '"' )
state = FILENAME;
break;
case FILENAME:
if( ch != '"' )
filename.append(ch);
else
state = COLON;
break;
case COLON:
// more cases;
// ...
default:
}
试试clang。:
clang++ -std=c++0x -stdlib=libc++ yourfile.cpp
Clang 3.3支持正则表达式。
相关文章:
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- C++ - 使用用户输入的字符串数据检查结构字符串数据(无限执行 while 循环)
- 如果我在块中编写字符串文字,是否会从数据部分复制整个字符串数据?
- 无法在 c++ 中将字符串分配给字符串数据类型
- 将特定字符串数据解析为变量
- C++ 将字符串数据包转换为 iphdr语言 - 字符串数据包的格式应该是什么?
- 基于给定字符串数据类型的链表删除节点
- 插入了 C++ 数组字符串数据,但在显示输出时不显示
- 使用来自串行端口的字符串数据来操作振镜扫描仪在更高的速度下会出错
- 将元音与字符串数据类型的字符串分开,并将其存储在新字符串中
- 放置在外部 DLL 中的类中的字符串数据的内存损坏
- 创建字符串数据串起
- 如何在C++中将字符串数据存储在字符串 2D 数组中
- C++程序不返回文件中文本和字符串数据的值
- C++:在字符串数据类型中创建单词"letter after letter"
- 将向量中的字符串数据解析为适当的数据类型 c++
- 如何将提取的字符串数据转换为字符数组
- 字符串数据类型变量初始化
- 如何从本机空间中的宗地中检索字符串数据
- 在C 中使用字符串数据类型的问题