193. 有效电话号码

2020-02-05

1.题目描述

写一个bash脚本来判断输入文件中的字符串是否为有效电话号码

2.题解

使用正则表达式来进行匹配

3.代码

grep -P '^(\d{3}-|\(\d{3}\) )\d{3}-\d{4}$' file.txt
代码如下:
#include <iostream>
#include <fstream>
#include <cstring>
#include <cstdlib>
using namespace std;

ifstream fin("file.txt");

int main(){
	string s;
	bool f[14],flag;
	int i;
	while (!fin.eof()){
		getline(fin,s);
		flag=false;
		memset(f,false,sizeof(f));
		if (s.length()==14){
			f[0]=f[4]=f[5]=f[9]=1;
			if (s[0]!='('||s[4]!=')'||s[5]!=' '||s[9]!='-') flag=false;
			else{
			    for (i=0;i<14;i++){
					if (!f[i]){
						if (s[i]>'9'||s[i]<'0'){
							flag=false;
							break;
						}
					}
				}
				if (i>=14) flag=true;	
			}
		}else if (s.length()==12){
			f[3]=f[7]=1;
			if (s[3]!='-'||s[7]!='-') flag=false;
			else{
			    for (i=0;i<12;i++){
					if (!f[i]){
						if (s[i]>'9'||s[i]<'0'){
							flag=false;
							break;
						}
					}
				}
				if (i>=12) flag=true;	
			}
		}
		if (flag) cout<<s<<endl;
	}
	return 0; 
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值