下面的代码(编译得很好)检查命令行输入中的非字母字符,但是我觉得有必要有更好的方式来编写它。例如,您可以看到没有在核心if语句中执行的代码,该语句检查字符串中的每个字符。有没有办法检查一个字符是否是而不是一个字母字符并抛出错误,而不是在else
函数中有错误?如何检查C中字符串中的非字母字符C
int main(int argc, string argv[]){
// terminate program if more than one key
if(argc != 2){
printf("error");
return 1;
// check to ensure key characters are alphabetical
} else {
for(int h = 0; h < strlen(argv[1]); h++){
if(isalpha(argv[1][h])){
} else {
printf("error");
return 1;
}
}
}
}
你熟悉的'!'运营商的功能? –
为什么不只是'如果(!isalpha(argv [1] [h]))',还是我错过了什么?顺便说一句,'string argv []'中的**'string' **是什么? –
@ KenY-N应该是'char *'?在那种情况下,我应该如何迭代'char *'数组来检查每个字母是否是按字母顺序排列的?如果(!isalpha(argv [1] [h]))printf(“error”);如果(int h = 0; h
zangiku