有人知道C中检查字符串中是否有字符的最佳方法是什么吗



我有一个字符串,例如"ABCDEFG&";,我想检查这个字符串中是否有某个字符(该字符串还包含换行符(。我有以下代码,但它似乎不起作用。有谁有更好的主意吗?

当前正在使用strchr来检查它是否为NULL,这意味着循环中的当前字符不存在于valid_characters变量中。

bool check_bad_characters(FILE *inputFile)
{
int c;
char valid_characters[28] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ ";
while ((c = fgetc(inputFile)) != EOF) {   
char charC = c + '0';
if (strchr(valid_characters, c) == NULL && strncmp(&charC, "n", 1) != 0)
{
// This means that there was a character in the input file
// that is not valid.
return false;
}    
}
return true;
}

您的代码认为n是一个有效字符,因此将其放在有效字符列表中,而不是单独处理。你的日常工作可以很简单:

bool check_bad_characters(FILE *inputFile)
{
int c;
while ((c = fgetc(inputFile)) != EOF)
if (!strchr("ABCDEFGHIJKLMNOPQRSTUVWXYZ n", c))
return false;
return true;
}

相关内容

  • 没有找到相关文章

最新更新