• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C语言实现电子邮件地址验证程序

C语言实现电子邮件地址验证程序

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了电子邮件地址,电子邮件地址怎么写,电子邮件地址注册,电子邮件地址大全,电子邮件地址是什么等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

我们最经常遇到的验证,就是电子邮件地址验证。网站上常见。各种网页脚本也都常用“正则表达式”(regular expression)对我们输入的电子邮件地址进行验证,判断是否合法。有的还能分解出用户名和域名。现在用C语言实现一下电子邮件地址验证程序,用的是POSIX正则表达式。由于用的是POSIX正则表达式,所以只能用gcc编译。
另外,据测试,只有Linux原版的gcc才能编译通过。如果用Windows中的MinGW或Cygwin的gcc编译不通过,错误是找不到<regex.h>头文件。
C语言源代码如下:

/*
 * regex.c - 用正则表达式验证电子邮件地址
 *
 *  POSIX正则表达式
 *
 *
 * 编译命令:
 *  gcc regex.c -o regex -Wall
 *
 *
 *  Copyright 叶剑飞 2012
 *
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <regex.h> /* regular expression 正则表达式 */

#define MAX_LENGTH 1000

int main (void)
{
 size_t char_num;
 char email_address[MAX_LENGTH];
 char user_name[MAX_LENGTH];
 char domain_name[MAX_LENGTH];

 regmatch_t pmatch[4];
 regex_t match_regex;

 regcomp( &match_regex,
  "([0-9A-Za-z\\-_\\.]+)@([0-9a-z]+\\.[a-z]{2,3}(\\.[a-z]{2})?)",
  REG_EXTENDED );

 while ( scanf( "%s", email_address ) != EOF )
 {
 if ( regexec( &match_regex, email_address, 4, pmatch, 0 ) == 0 )
 {
  char_num = pmatch[1].rm_eo - pmatch[1].rm_so;
  strncpy( user_name, &(email_address[pmatch[1].rm_so]), char_num );
  user_name[char_num] = '\0';

  char_num = pmatch[2].rm_eo - pmatch[2].rm_so;
  strncpy( domain_name, &(email_address[pmatch[2].rm_so]), char_num );
  domain_name[char_num] = '\0';

  puts( "您输入的电子邮件地址合法" );
  printf ( "用户名:%s\n", user_name );
  printf ( "域名:%s\n\n", domain_name );
 }
 else
  puts( "您输入的电子邮件地址不合法\n\n" );
 }

 regfree( &match_regex );
 return EXIT_SUCCESS;
}
</div>

之前文章中介绍了许多邮箱验证正则表达式的方法,js正则表达式验证邮件地址,php邮箱地址正则表达式验证,本文是C语言实现电子邮件地址验证,希望大家结合相关文章进行学习,从中得到收获。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C语言实现电子邮件地址验证程序

相关文章

  • 2017-05-28详解安卓系统中的Android.mk文件
  • 2017-05-28求数组中最长递增子序列的解决方法
  • 2022-04-30C语言加减乘除运算
  • 2017-05-28用C语言来实现一个简单的虚拟机
  • 2017-05-28浅析c++ 宏 #val 在unicode下的使用
  • 2017-05-28C语言实现socket简单通信实例
  • 2017-05-28c语言全局变量和局部变量问题及解决汇总
  • 2017-05-28利用反射获得类的public static/const成员的值实例
  • 2017-05-28VC小技巧汇总之窗口技巧
  • 2017-05-28strcat 函数的使用指南

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++实现的归并排序算法详解
    • C语言中经socket接收数据的相关函数详解
    • C语言位运算(按位与运算、或运算、异或运算、左移运算、右移运算)
    • 详解C语言中的常量指针和指针常量
    • C++里最容易忽视却不能忽视的问题(必看)
    • 深入分析C中不安全的sprintf与strcpy
    • c#中实现退出程序后自动重新启动程序的方法
    • java 中ArrayList与LinkedList性能比较
    • 简单的socket编程入门示例
    • 随机数字去掉重复和排序的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有