华为笔试题09

  • 题目描述:

编写一个函数检查邮箱地址是否合法,合法的条件是

1、地址中有且只有一个'@'字符

2、最后三位应该是".com"

3、中间没有空格

4、合法的字符是1~9, a~z, A~Z, '.', '@', '_'

正确输出1,非法输出0

  • 要求实现函数:

void vConvertMsg(char *pInputStr, long lInputLen, char *pOutputStr);

【输入】

char *pInputStr:指向一个数组的指针

long lInputLen:该数组的长度

char *pOutputStr:输出结果,按照字符串输出,正确输出字符'1',错误输出字符'0',''作为字符串结束符

【返回】 无

【注意】 只需要完成该函数功能算法,中间不需要有任何IO的输入输出

  • 示例

输入:huawei@huawei.com

返回:1

输入:aa@ddd@huawei.com

返回:0

 

#include "stdafx.h"
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	char str[]="jinjian.xidian@gmain.com";
	int count=0;
	for(int i=0;i<strlen(str);++i)
	{
		if('@'==str[i])
			++count;
	}
	if(1!=count)
		cout<<"error";
	if(str[strlen(str)-4]!='.'||str[strlen(str)-3]!='c'||str[strlen(str)-2]!='o'||str[strlen(str)-1]!='m')
		cout<<"error";

	for(int i=0;i<strlen(str);++i)
	{
		if(' '==str[i])
			cout<<"error";
		break;
		
	}
	for(int i=0;i<strlen(str);++i)
	{
		
		if (('1'<=str[i])&&(str[i]<='9'))
			continue;
		if (('a'<=str[i])&&(str[i]<='z'))
			continue;
		if (('A'<=str[i])&&(str[i]<='Z'))
			continue;
		if ('.'==str[i])
			continue;
		if (','==str[i])
			continue;
		if ('@'==str[i])
			continue;
		if ('_'==str[i])
			continue;
			cout<<"error";
			break;			
		
	}
	return 0;
}

  

原文地址:https://www.cnblogs.com/xd-jinjian/p/3277201.html