我创建了一个函数来检查用户是否键入了一个不包含所有其他非字母字符的实名。 那么,从我身边,作为一个C语言的开始,它的工作很好。 无论如何,我只是一个小问题,与字符串的名称,如果有字符串中的空间我得到错误的名称,但如果只有一个名称(michi)一切都好。检查字母字符的函数
#include <stdio.h>
#include<string.h>
/* Here is the Function which check if the string contains only: */
/* abcdefghijklmnopqrstuvwxyz and ABCDEFGHIJKLMNOPQRSTUVWXYZ */
int checkName(char *s){
int i,length;
length = (strlen(s));
for (i=0;i<length;i++){
if(s[i] == '0' || s[i] <= '9'){
return 1;
}
}
return 0;
}
int main(){
char name[]= "Michi";
int check;
if((check = checkName(name)) == 0){
printf("\n\n\t\t\tYour name is:\t%s\n\n",name);
}else{
printf("\n\n\t\t\tWrong name:\t%s\n\n",name);
}
return 0;
}
我的问题是: 1) 我才发现检查,如果字符串中包含唯一的非英文字母的正确方法。 2) 如何延长我的职责,跳过空格
如果你的名字是“奥布莱恩”或“史密斯 - 巴恩斯”,我怀疑一个人会说“不包括所有其他非字母字符真实姓名”。 – chux
我改变了标题名称。 – Michi
正在寻找任何字符的for循环0 ... 9不是您说的代码所要做的。代码需要一个积极的检查。 I.E.对于每个字符if('a'<= str [i] &&'z'> = str [i])|| ('A'<= str [i] &&'Z'> = str [i])然后不做任何其他错误返回 – user3629249