检查字符串的形式c ++

所以..我正在做一个程序,要求用户输入一个字符串(是一个多项式),并且希望它具有以下结构: +/-(从0到9的数字)(x)(从0到9的数字)。括号中的内容可能会或可能不会出现,因此基本上会接受“ + 2x-4x3”之类的内容,但不会接受“ + 2xx3--2x”或“ + -x2”之类的内容。我希望我的程序运行测试并检查输入数据是否具有此结构。因此,在将输入数据存储在名为“ p”的字符串中之后,我正在使用以下循环检查字符是x,+,-还是数字,但是我找不到找到更精确的方法并检查其他可能的错误...有什么建议吗?

for (unsigned int i=0; i<p.length(); i++) {
    if ((p[i] < '0' ||  p[i] > '9') && p[i]!='+' && p[i] !='-' && p[i]!='x'  ) {

    std::cout << "Error.";
    return 1;
    }
评论