我不明白为什么它总是返回FALSE,即使每个变量都满足条件。我试图将条件中的字符改为ascii数,但它不能解决这个问题。任何帮助,非常感谢。
我希望检查数组中的每个变量,如果其中一个变量与字母表或“空格”或".“中的字符不同,则函数将返回False。
bool KiemTraTenSinhVien(char ten[])
{
for (int i = 0; i < strlen(ten); i++)
{
if (ten[i] == (char)" " || ten[i] == (char)".")
{
}
else if (ten[i] >= (char)"a" && ten[i] <= (char)"z")
{
}
else if (ten[i] >= (char)"A" && ten[i] <= (char)"Z")
{
}
else
{
return false;
}
}
return true;
}我也试过这个,但这个问题还没有解决。
bool KiemTraTenSinhVien(char ten[])
{
for (int i = 0; i < strlen(ten); i++)
{
if (ten[i] == ' ' || ten[i] == '.')
{
}
else if (ten[i] >= 'a' && ten[i] <= 'z')
{
}
else if (ten[i] >= 'A' && ten[i] <= 'Z')
{
}
else
{
return false;
}
}
return true;
}发布于 2018-11-03 23:43:06
使用有效字符数组并使用strchr进行测试。
bool KiemTraTenSinhVien(char ten[])
{
char valid[] = " .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int len = strlen ( ten);
for (int i = 0; i < len; i++)
{
if ( ! strchr ( valid, ten[i]))
{
return false;
}
}
return true;
}https://stackoverflow.com/questions/53136418
复制相似问题