本文目录一览:
- 1、c语言中如何哦岸段一个字符串为电子邮件地址
- 2、C语言编写邮件地址
- 3、C语言编程,给定一个Email地址,判断其是否合法
- 4、c语言中,输入一个邮箱地址,将用户名分离放入字符数组
- 5、c语言中录入邮箱信息的时候定义什么类型?
c语言中如何哦岸段一个字符串为电子邮件地址
@前面要有文字,@后面要有文字,@后的文字后面要有点“。”,点后还得有文字,不就是这样的思路吗?如果想更好点,你可以把所有邮箱的点后的域名加入一个数组里。看哈:
char *a[10]={"163.com","139.com","hotmail.com"};
char *p=get(hostname);//得到串
char b[10];
char *d=b[10];//等会比较域名用
int i=0;
while(*p++!='@')
i++;
if(i==0){
printf("error\n");
}
while(*p!='\0')
*d++=*p++;
for(i=0;i10;i++)//不能超过数组的长度
if((strcmp(b,a[i])==0){
printf("right\n");
break;
}
程序没测试,大概就是这个意思
C语言编写邮件地址
int mail(char *s)
{
char p;
p = '@';
if(!memchr(s,p,strlen(s)))
return 0;
p = '.';
if(!memchr(s,p,strlen(s)))
return 0;
if(!strstr(s,"com")!strstr(s,"not")!strstr(s,"edu")!strstr(s,"org")!strstr(s,"mil"))
return 0;
return 1;
}
C语言编程,给定一个Email地址,判断其是否合法
#includestdio.h
#includestring.h
int FormatCheck(char *);
char * SplitByAt(char * ,int);
char * CharsCheck(char *);
#define N 1024
int main()
{
char str[N],*field;
memset(str,0x00,N);
scanf("%s",str);
field=SplitByAt(str,N);
if(field==NULL)
{
printf("NO\n");
return -1;
}
else if(FormatCheck(str)FormatCheck(field))
{
printf("YES\n");
return 0;
}
else
{
printf("NO\n");
return -1;
}
}
/**
*校验域名/邮箱格式
*/
int FormatCheck(char *str)
{
char *p;
for(;;)
{
p=CharsCheck(str);
if(p==str)
{
return 0;
}
else if(*p=='\0')
{
return 1;
}
else if(*p!='.')
{
return 0;
}
p++;
str=p;
}
}
/**
*校验是否可用@分割为两段,返回域名首地址,不合要求返回NULL
*参数:str,源字符串,length,长度限制(防越界)
*函数会用'\0'代替源字符串第一个'@',已完成邮箱,域名分割.
*/
char *SplitByAt(char *str,int length)
{
char *p=strchr(str,'@');
if(p!=NULL(p-str)length)
{
*p=0;
p++;
return p;
}
return NULL;
}
/**
*校验str是否为连续的'a'-'z','A'-'Z','0'-'9'字符
*返回值:第一个不合要求的字符所处位置
*例如:str="abc",返回str+3; str="a#bc",返回str+1;
*/
char * CharsCheck(char *str)
{
while((*str='a'*str='z')||
(*str='A'*str='Z')||
(*str='0'*str='9')||
*str=='_')
{
str++;
}
return str;
}
要求没有提'_'符号的特殊规则, 所以"__.__@_"这样的email也是能校验过的.
c语言中,输入一个邮箱地址,将用户名分离放入字符数组
#include stdio.h
int main (void)
{
int i;
char a[100],b[100];
printf ("输入邮箱地址:");
gets(a);
for (i=0;a[i]!='\0';i++)
if (a[i]='a'a[i]='z'||a[i]='A'a[i]='Z')
b[i]=a[i];
printf ("用户名:%s\n",b);
return 0;;
}
c语言中录入邮箱信息的时候定义什么类型?
那要看你记录的信息内容。
一、单纯记录邮箱地址 ,一个字符串即可。
二、记录并验证邮箱,字符串数组,把地址里的用户名和域名分开来放,用于服务器查询。(当然用一个字符串保存,查询时再拆分也可)。
三、复合结构 ,比如注册的邮箱信息,包含账户,密码,真实姓名,电话等等。需定义结构体来保存。