检查字符串是否采用“坐标/坐标”格式

时间:2015-03-19 13:09:34

标签: c++ string coordinates

我很想知道如何检查字符串是否具有两个坐标的格式,例如:

(signed int x,signed int y)

我已经通过搜索找到了一些答案,但我还没有得到它们(刚开始使用c ++)而且我要求一个简单的解决方案或提示如何检查这个。谢谢!

2 个答案:

答案 0 :(得分:0)

我会使用这个(可能存在一些更简单):

^\(\-{0,1}\d*,\-{0,1}\d*\)

这是:

^\(       start by a parenthesis
\-{0,1}   0 or 1 "-"
\d*       any digit
,         ","

并重复。

答案 1 :(得分:0)

我假设您需要专门使用字符串作为输入。我检查字符串的每个值。

string str;
// something happens to str, to make it a coordinate
int n = 0;
int m = 48;
bool isANumber;
bool hasASlash = false;
while ((n < str.length()) and isANumber) {
    isANumber = false;
    if (str.at(n) == '/') {
        hasASlash = true; // this means there is a slash somewhere in it
    }
    while ((m <= 57) and !isANumber) {
        // makes sure the character is a number or slash
        if ((str.at(n) == m) or (str.at(n) == '/')) isANumber = true;
        m++;
    }
    m = 48;
    n++;
}
if (hasASlash and isANumber) {
    // the string is in the right format
}

如果我做错了,请纠正我......