C语言字符串中的邮箱验证

发布时间:2024-08-29 21:09:43 作者:小樊
来源:亿速云 阅读:83

在C语言中,验证字符串是否为有效的电子邮件地址可以通过编写一个函数来实现

#include<stdio.h>
#include <stdbool.h>
#include<string.h>
#include <ctype.h>

bool is_valid_email(const char *email) {
    int at_count = 0;
    int dot_count = 0;
    bool is_local_part = true;

    for (int i = 0; email[i] != '\0'; i++) {
        if (email[i] == '@') {
            at_count++;
            is_local_part = false;
        } else if (email[i] == '.') {
            dot_count++;
        } else if (!isalnum(email[i]) && email[i] != '_' && email[i] != '-' && email[i] != '.') {
            return false;
        }
    }

    if (at_count != 1 || dot_count == 0 || is_local_part) {
        return false;
    }

    const char *domain = strchr(email, '@') + 1;
    int domain_len = strlen(domain);

    if (domain_len < 3 || domain[domain_len - 1] == '.' || domain[domain_len - 2] == '.') {
        return false;
    }

    return true;
}

int main() {
    const char *email = "example@example.com";

    if (is_valid_email(email)) {
        printf("The email address '%s' is valid.\n", email);
    } else {
        printf("The email address '%s' is not valid.\n", email);
    }

    return 0;
}

这个示例中的is_valid_email函数接受一个字符串参数email,并检查其是否符合电子邮件地址的基本格式。函数首先计算@.字符的出现次数,然后检查电子邮件地址的本地部分(@符号之前的部分)和域名部分(@符号之后的部分)是否符合要求。最后,函数返回一个布尔值,表示给定的字符串是否为有效的电子邮件地址。

请注意,这个示例仅提供了一个简单的电子邮件地址验证方法,可能无法涵盖所有可能的情况。在实际应用中,您可能需要使用更复杂的正则表达式或第三方库来进行更准确的验证。

推荐阅读:
  1. c语言gets()和scanf()的区别有哪些
  2. C语言跟指针的本质是什么

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c语言

上一篇:C语言字符串中的路径规范化

下一篇:C语言字符串中的IP地址验证

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》