请编写一个用户输入信息检测程序,当不符合要求时提示 “输入非法,重新输入!”,直到符合要求时输出 “Good Luck!〞 后结束。 要求如下: ①输入的字符串必须由数字+字母组合。 ②字符串长度不小于 8 ③以上两个条件请分别设计 2个函数 isok(和 islen0进行条件 判断。
时间: 2024-03-17 07:39:45 浏览: 90
好的,我可以为您编写这个程序。以下是代码示例:
```
#include <stdio.h>
#include <ctype.h>
#include <string.h>
int isok(char *str) {
int has_digit = 0, has_alpha = 0;
for (int i = 0; str[i] != '\0'; i++) {
if (isdigit(str[i])) {
has_digit = 1;
} else if (isalpha(str[i])) {
has_alpha = 1;
} else {
return 0;
}
}
return has_digit && has_alpha;
}
int islenok(char *str) {
return strlen(str) >= 8;
}
int main() {
char str[100];
while (1) {
printf("请输入字符串:");
scanf("%s", str);
if (!isok(str) || !islenok(str)) {
printf("输入非法,重新输入!\n");
} else {
printf("Good Luck!\n");
break;
}
}
return 0;
}
```
程序中定义了两个函数 isok 和 islenok,分别用于判断输入字符串是否符合要求。isok 函数用于判断字符串是否由数字和字母组成,islenok 函数用于判断字符串长度是否不小于 8。
在主函数中,使用 while 循环不断读入用户输入的字符串,如果不符合要求则输出提示信息,直到符合要求时输出 Good Luck 并结束程序。
阅读全文