我一直在尝试解决一种基本验证给定电子邮件的简单算法。因此,如果有一个“。”或本地名称中的“ +”,则应该没问题,如果有“。”或域名中的“ +”(也就是“ @”之后的域名),则无效。
现在,我知道我的方法效率不高,远非如此。但是我现在只想解决问题。由于某些原因,当我有以下代码时,将打印出newArr中的字符:
#include <stdio.h>
#include <string.h>
int main() {
char email[30] = "DanGitson@gmail.com";
char newArr[30];
int at = 0;
for (int i = 0; i < 30; i++) {
// get the characters after '@'
if (at == 1) {
newArr[i] = email[i];
printf("%c", newArr[i]);
}
// if email[i] is equal to '@'
if(email[i] == 64){
at = 1;
}
}
}
但是当我有以下代码时,它们却不是:
#include <stdio.h>
#include <string.h>
int main() {
char email[30] = "DanGitson@gmail.com";
char newArr[30];
int at = 0;
for (int i = 0; i < 30; i++) {
// get the characters after '@'
if (at == 1) {
newArr[i] = email[i];
}
// if email[i] is equal to '@'
if(email[i] == 64){
at = 1;
}
}
for (int j = 0; j < 30; j++) {
printf("%c", newArr[j]);
}
}
基本上,我的方法是在'@'字符之后添加所有字符。换句话说,获取域并检查是否存在超过2个“。”以及是否存在“ +”,以便我可以验证电子邮件是否有效。 另外,如果您对我的方法有任何建议或反馈,我将不胜感激。
感谢您到目前为止阅读本文,我正在等待您的回复!