|
Post by huangno1 on Mar 2, 2017 20:49:34 GMT -8
程式說明
本程式會檢查使用者輸入的電子信箱地址是否合法。
使用者輸入的信箱地址不含空白字元且最多只會包含一個 ‘@’ 字元。
信箱地址長度不超過50個字元。
一個合法的地址必須滿足下列兩個條件:
(1) 在 ‘@’ 字元前面必須剛好有 9 個字元。
(2) 在 ‘@’ 字元後面必須為 “ntnu.edu.tw”,英文字母大小寫均可。
為了達成這個功能,你將撰寫兩個額外的函式 – Find() 和 Convert()。
1. Find() 函式:傳入一個字串 s 和一個欲搜尋的字元 c,若字串 s 中找得到字元 c,回傳第一次找到該字元的「位址」;若找不到,回傳 0。
2. Convert() 函式:傳入一個字串,本函式會將該字串中所有小寫英文字母都轉成大寫。
你必須在主程式呼叫這兩個函式來判斷一個信箱位址是否合法。若是,輸出 "Yes";否則,輸出 "No"。
#include <stdio.h>
#include <ctype.h>
#include <string.h>
char *Find(char x[], char ch)
{
while (*x != '\0')
{
if (*x == ch) return x;
x += 1;
}
return 0;
}
// ------------------------------------------
void Convert ( char str [ ] )
{
int i = 0 ;
while ( str [ i ] != '\0' )
{
if ( isalpha ( str [ i ] ) )
str [ i ] = toupper ( str [ i ] ) ;
i += 1 ;
}
}
// ------------------------------------------
int main()
{
char email[51]= {};
scanf("%s", email);
char *pos = Find(email, '@');
char tmp[51]= {};
if (
pos - email == 9
)
{
strcpy(tmp,
pos + 1
);
Convert(tmp);
}
if (
strcmp
(tmp, "NTNU.EDU.TW")
== 0
)
{
printf("Yes");
}
else
{
printf("No");
}
return 0;
}
|
|