c语言邮箱地址合法性校验 输入一个电子邮箱地址字符串,要求检查这个邮箱地址是否合法。如果输入的电子邮箱地址是合法的,输出字符串"true"; 如果不合法输出字符"false"。满足如下条件被认为是合法的邮箱地址:1、仅包含一个"@"字符 2、最后三个字符必须是".com"3、字符之间没有空格4、有效字符为1~9、a~z、A~Z、"."、"@"、"_"
时间: 2023-07-19 22:06:07 浏览: 91
以下是C语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
int main() {
char email[100];
printf("请输入邮箱地址:");
scanf("%s", email);
int len = strlen(email);
int flag = 1; // 标记是否合法
// 检查是否有且仅有一个@
int count_at = 0;
for (int i = 0; i < len; i++) {
if (email[i] == '@') {
count_at++;
}
}
if (count_at != 1) {
flag = 0;
}
// 检查最后三个字符是否为.com
if (email[len - 1] != 'm' || email[len - 2] != 'o' || email[len - 3] != 'c') {
flag = 0;
}
// 检查字符是否合法
for (int i = 0; i < len; i++) {
if (!((email[i] >= '0' && email[i] <= '9') ||
(email[i] >= 'a' && email[i] <= 'z') ||
(email[i] >= 'A' && email[i] <= 'Z') ||
email[i] == '.' || email[i] == '@' || email[i] == '_')) {
flag = 0;
}
}
if (flag == 1) {
printf("true\n");
} else {
printf("false\n");
}
return 0;
}
```
代码思路:
1. 使用scanf函数读入邮箱地址字符串,存储在字符数组email中。
2. 使用strlen函数获取字符串的长度len。
3. 检查是否有且仅有一个@,使用for循环遍历字符串,遇到@计数器加1,最后判断计数器的值是否为1。
4. 检查最后三个字符是否为.com,使用下标访问最后三个字符,并与com进行比较。
5. 检查字符是否合法,使用for循环遍历字符串,判断每个字符是否在1~9、a~z、A~Z、"."、"@"、"_"这些字符中。
6. 如果flag的值为1,说明邮箱地址合法,输出true;否则输出false。