国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C語言實現電子郵件地址驗證程序

2020-05-23 14:13:26
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了C語言實現電子郵件地址驗證程序,利用的是POSIX正則表達式,感興趣的小伙伴們可以參考一下
 

我們最經常遇到的驗證,就是電子郵件地址驗證。網站上常見。各種網頁腳本也都常用“正則表達式”(regular expression)對我們輸入的電子郵件地址進行驗證,判斷是否合法。有的還能分解出用戶名和域名。現在用C語言實現一下電子郵件地址驗證程序,用的是POSIX正則表達式。由于用的是POSIX正則表達式,所以只能用gcc編譯。
另外,據測試,只有Linux原版的gcc才能編譯通過。如果用Windows中的MinGW或Cygwin的gcc編譯不通過,錯誤是找不到<regex.h>頭文件。
C語言源代碼如下:
 

  1. /* 
  2.  * regex.c - 用正則表達式驗證電子郵件地址 
  3.  * 
  4.  *  POSIX正則表達式 
  5.  * 
  6.  * 
  7.  * 編譯命令: 
  8.  *  gcc regex.c -o regex -Wall 
  9.  * 
  10.  * 
  11.  *  Copyright 葉劍飛 2012 
  12.  * 
  13.  */ 
  14.  
  15. #include <stdio.h> 
  16. #include <stdlib.h> 
  17. #include <string.h> 
  18. #include <regex.h> /* regular expression 正則表達式 */ 
  19.  
  20. #define MAX_LENGTH 1000 
  21.  
  22. int main (void
  23.  size_t char_num; 
  24.  char email_address[MAX_LENGTH]; 
  25.  char user_name[MAX_LENGTH]; 
  26.  char domain_name[MAX_LENGTH]; 
  27.  
  28.  regmatch_t pmatch[4]; 
  29.  regex_t match_regex; 
  30.  
  31.  regcomp( &match_regex, 
  32.   "([0-9A-Za-z//-_//.]+)@([0-9a-z]+//.[a-z]{2,3}(//.[a-z]{2})?)"
  33.   REG_EXTENDED ); 
  34.  
  35.  while ( scanf( "%s", email_address ) != EOF ) 
  36.  { 
  37.  if ( regexec( &match_regex, email_address, 4, pmatch, 0 ) == 0 ) 
  38.  { 
  39.   char_num = pmatch[1].rm_eo - pmatch[1].rm_so; 
  40.   strncpy( user_name, &(email_address[pmatch[1].rm_so]), char_num ); 
  41.   user_name[char_num] = '/0'
  42.  
  43.   char_num = pmatch[2].rm_eo - pmatch[2].rm_so; 
  44.   strncpy( domain_name, &(email_address[pmatch[2].rm_so]), char_num ); 
  45.   domain_name[char_num] = '/0'
  46.  
  47.   puts( "您輸入的電子郵件地址合法" ); 
  48.   printf ( "用戶名:%s/n", user_name ); 
  49.   printf ( "域名:%s/n/n", domain_name ); 
  50.  } 
  51.  else 
  52.   puts( "您輸入的電子郵件地址不合法/n/n" ); 
  53.  } 
  54.  
  55.  regfree( &match_regex ); 
  56.  return EXIT_SUCCESS; 
?

之前文章中介紹了許多郵箱驗證正則表達式的方法,js正則表達式驗證郵件地址php郵箱地址正則表達式驗證,本文是C語言實現電子郵件地址驗證,希望大家結合相關文章進行學習,從中得到收獲。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鹤岗市| 阿荣旗| 贵溪市| 凌云县| 涪陵区| 怀来县| 平和县| 南乐县| 桓仁| 汾西县| 漾濞| 河间市| 丽江市| 顺平县| 托里县| 汪清县| 浠水县| 沧源| 邵东县| 宿迁市| 田林县| 察雅县| 邹城市| 银川市| 察哈| 开鲁县| 肥乡县| 天全县| 兴业县| 巴彦淖尔市| 元谋县| 诏安县| 清水河县| 泸水县| 聊城市| 博白县| 福安市| 南漳县| 盐边县| 盐边县| 射阳县|