C语言写一段代码,判断一个邮箱地址是否合法,若邮箱地址仅包含一个"@"字符,最后三个字符是".com",字符之间没有空格,有效字符为1~9、a~z、A~Z、"."、"@"、"_",则这个邮箱地址是合法的
时间: 2023-07-19 09:10:17 浏览: 95
可以使用C语言中的字符串处理函数来判断一个邮箱地址是否合法,具体实现如下:
```c
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int is_valid_email(char *email) {
int len = strlen(email);
int at_count = 0;
char *last_three_chars = email + len - 3;
// 判断最后三个字符是否为".com"
if (strcmp(last_three_chars, "com") != 0) {
return 0;
}
// 判断字符之间是否有空格
for (int i = 0; i < len; i++) {
if (isspace(email[i])) {
return 0;
}
}
// 判断是否仅包含一个"@"
for (int i = 0; i < len; i++) {
if (email[i] == '@') {
at_count++;
}
}
if (at_count != 1) {
return 0;
}
// 判断有效字符
for (int i = 0; i < len; i++) {
char c = email[i];
if (!isalnum(c) && c != '.' && c != '@' && c != '_') {
return 0;
}
}
return 1;
}
int main() {
char email[100];
printf("请输入邮箱地址:");
scanf("%s", email);
if (is_valid_email(email)) {
printf("这是一个合法的邮箱地址。\n");
} else {
printf("这不是一个合法的邮箱地址。\n");
}
return 0;
}
```
在上面的代码中,`is_valid_email`函数用于判断一个邮箱地址是否合法。首先,通过`strlen`函数获取邮箱地址的长度,然后判断最后三个字符是否为".com",字符之间是否有空格,是否仅包含一个"@",以及有效字符是否为1~9、a~z、A~Z、"."、"@"、"_"。如果这些条件都满足,则返回1表示合法,否则返回0表示不合法。
在`main`函数中,先用`scanf`函数获取用户输入的邮箱地址,然后调用`is_valid_email`函数判断是否合法,最后输出相应的结果。
阅读全文