欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實現(xiàn)電子郵件地址驗證程序

 更新時間:2022年06月15日 10:26:14   投稿:lijiao  
這篇文章主要介紹了C語言實現(xiàn)電子郵件地址驗證程序,利用的是POSIX正則表達式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

我們最經(jīng)常遇到的驗證,就是電子郵件地址驗證。網(wǎng)站上常見。各種網(wǎng)頁腳本也都常用“正則表達式”(regular expression)對我們輸入的電子郵件地址進行驗證,判斷是否合法。有的還能分解出用戶名和域名?,F(xiàn)在用C語言實現(xiàn)一下電子郵件地址驗證程序,用的是POSIX正則表達式。由于用的是POSIX正則表達式,所以只能用gcc編譯。
另外,據(jù)測試,只有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;
}

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

您可能感興趣的文章:

相關(guān)文章

  • 基于C語言自制華容道游戲的示例代碼

    基于C語言自制華容道游戲的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C語言自制華容道游戲,文中的示例代碼講解詳細,對我們學習C語言有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-03-03
  • 關(guān)于UDP服務器客戶端編程流程介紹

    關(guān)于UDP服務器客戶端編程流程介紹

    大家好,本篇文章主要講的是關(guān)于UDP服務器客戶端編程流程介紹,感興趣的同學趕快來看看吧,對你有幫助的話記得收藏
    2021-12-12
  • C++簡單又好用的基本運算符重載

    C++簡單又好用的基本運算符重載

    繼友元知識過后,就到了今天的C++運算符重載的內(nèi)容了,運算符重載是C++里比較重要的內(nèi)容。這篇博文不會一下子講完各種運算符重載,因為太多了了也不好吸收掌握,所以運算符重載我準備分多次記錄和分享,那么接下來進入正文
    2022-06-06
  • opencv如何識別圖片上帶顏色的圓

    opencv如何識別圖片上帶顏色的圓

    這篇文章主要為大家詳細介紹了opencv如何識別圖片上帶顏色的圓,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Cocos2d-x觸摸事件實例

    Cocos2d-x觸摸事件實例

    這篇文章主要介紹了Cocos2d-x觸摸事件實例,本文代碼中包含大量注釋來說明Cocos2d-x中的觸摸事件使用示例,需要的朋友可以參考下
    2014-09-09
  • C中qsort快速排序使用實例

    C中qsort快速排序使用實例

    在學習C++ STL的sort函數(shù),發(fā)現(xiàn)C中也存在一個qsort快速排序,要好好學習下C的庫函數(shù)啊
    2014-01-01
  • C++回溯算法中的全排列問題分析探討

    C++回溯算法中的全排列問題分析探討

    遞歸中遇到一個問題全排列的問題,我看見回溯特別神奇,特此記錄一下。對比一下深度優(yōu)先搜索與廣度優(yōu)先搜索,個人感覺這里的回溯像是一種遞歸樹中的深度優(yōu)先搜索的算法,他不斷構(gòu)造往下延伸的深度,使其達到完全編列
    2023-03-03
  • C++實現(xiàn)inline hook的原理及應用實例

    C++實現(xiàn)inline hook的原理及應用實例

    這篇文章主要介紹了C++實現(xiàn)inline hook的原理及應用,需要的朋友可以參考下
    2014-08-08
  • C++實現(xiàn)查找中位數(shù)的O(N)算法和Kmin算法

    C++實現(xiàn)查找中位數(shù)的O(N)算法和Kmin算法

    這篇文章主要介紹了C++實現(xiàn)查找中位數(shù)的O(N)算法和Kmin算法,對于C++程序算法設計有一定的借鑒價值,需要的朋友可以參考下
    2014-09-09
  • C語言 完整游戲項目推箱子詳細代碼

    C語言 完整游戲項目推箱子詳細代碼

    經(jīng)典的推箱子是一個的古老游戲,目的是在訓練你的邏輯思考能力。在一個狹小的倉庫中,要求把木箱放到指定的位置,稍不小心就會出現(xiàn)箱子無法移動或者通道被堵住的情況,所以需要巧妙的利用有限的空間和通道,合理安排移動的次序和位置,才能順利的完成任務
    2021-11-11

最新評論