急急急!!!c语言 用指针实现判断一个字符串是否符合格式str1@str2,至少包含一个“.”

str2至少包含一个“.”。谢谢咯,考试题,速度啊。

第1个回答  2012-12-19
判断是否符合邮箱格式吗?
int f(char *s)
{
int f1=0,f2=0;
char *p;
p=s;

while(*p)
{

if(p=='@')
{
f1=1;
break;

}
p++;

}

while(*p)
{
if(*p=='.')
{
f2=1;
break;

}
p++;

}
if(f1&&f2)
retrun 1;
else
return 0;

}追问

额,问错了,我用的你的,系统报错,我用的c ,麻烦大师帮帮忙阿,速度。

追答

原理:
传过指针,判断指针指向的字符是否是@,如果是,那么跳出循环,不是,则指针指向下一个字符
判断玩@后,那么指针指向@这个字符所在的空间,那么指针指向的字符串相当于str2了
接着判断指针指向的空间是否包含.这个字符,如果是,则跳出循环,不是p自加,指向下一个字符

两个里面,如果是了,则f1 f2是标记,赋值成1
最后判断f1f2的值,如果都是1,则符合条件,返回1;只要有一个不是1,则不符合条件,返回0

主函数根据是否为1来判断是否是邮箱的条件

原理知道,写代码就好了,我用的也是c啊
你自己应该也能写出来,呵呵

第2个回答  2012-12-19
bool TestStr(char* str)
{
int index = 0;
while(*str != '\0')
{
if(*str == '@' && index > 0)
{
str++;
while(*str != '\0')
{
if(*str == '.')
return true;
str++;
}
return false;
}
index++;
str++;
}
return false;
}追问

系统报错了,这个是c 阿。大师速度纠错。

追答

这里面用的都是C的东西...而且我还验证过了

第3个回答  2012-12-19
int fun(char *str)
{
char *p, *p1, *p2;
if(!str)
return -1;
p=str;
while(*(p++)!='\0')
{
if(*p=='@')
{
p2=p1=p;
while(*(p1++)!='\0')
{
if(*p1=='.')
break;
}
}
}
if(*p2=='@'&&*p1=='.')
return 0;
else
return -1;
}本回答被网友采纳
相似回答