如何检查字符串是否与模式C匹配

时间:2014-11-23 18:44:57

标签: c

如何检查我的字符串/字符数组是否以字母开头,后跟C中的10个数字? 例如。是A1234567890吗?有没有有用的功能?

3 个答案:

答案 0 :(得分:4)

bool Test(const char* str)
{
    return str && isalpha(str[0]) && strspn(str+1,"0123456789")==10 /*&& str[11]==0*/;
}

答案 1 :(得分:1)

int main()
{
    char str[MAXSTR] = "A1234567890";
}

int isFormat(char str[MAXSTR])
{
    int len = strlen(str);
    int x=0, result=0;

    if(str[x] >= 'A' && str[x] <= 'Z')
    {
        for (x=1; x<len; x++)
            if(str[x] >= '0' && str[x] <= '9')
                result = 1;
            else
                return 0;
    }
    return result;
}

您可以编写自己的功能来检查。这只是其中一个例子。您可以使用isalpha()功能,但可能需要包含<ctype.h>isalpha()接收char

答案 2 :(得分:0)

您需要检查字符串的长度,然后检查第一个字符,最后检查以下10个字符:

int check_string(char *str)
{
    if (str == NULL)
    {
        return 0;
    }

    if (strlen(str) < 11)
    {
        return 0;
    }

    if (!isalpha(str[0]))
    {
        return 0;
    }

    int i;

    for (i = 1; i < 11; i++)
    {
        if (!isdigit(str[i]))
        {
            return 0;
        }
    }

    return 1;
}