如何检查字符串"HEAA5"
是否与任何字符串("HE+++"
,"HEAA+"
,"HEA++"
,"HC+++"
,"HCA++"
)匹配给定数组+
表示任何字符。
此示例中HEAA5
匹配HE+++
,HEAA+
,HEA++
。
答案 0 :(得分:2)
您可以编写一个简单的函数来比较两个字符串的相等性,当模式中存在+
时跳过比较。
我使用的算法是:
str
和pattern
。pattern
字符为+
,则继续扫描。str
和pattern
个字符不匹配,则返回false。例如:
#include <stdio.h>
int match(const char *str, const char *pattern)
{
for (; *str && *pattern; ++str, ++pattern) {
if (*pattern == '+') continue;
if (*str != *pattern) return 0;
}
return !(*str || *pattern);
}
int main()
{
const char *str = "HEAA5";
const char *pattern[] = { "HE+++", "HEAA+", "HEA++", "HC+++", "HCA++" };
for (int i = 0; i < 5; ++i) {
printf("%s %s %d\n", str, pattern[i], match(str, pattern[i]));
}
return 0;
}
答案 1 :(得分:0)
String是C中的一个字符数组。所以你要做的就是检查HEAA5
的每个字符是否= =输入字符串的每个字符。还要检查输入的字符串是否是5个字母的字符串使用strlen
。如果输入的字符串的字符是'+'
,请检查字符串的下一个字母。
当输入的字符串中没有'+'
时,另一种方法是使用评论中提到的strcmp。