0
点赞
收藏
分享

微信扫一扫

2974. 统计单词个数(EOJ程序设计能力实训)

爱薇Ivy趣闻 2022-03-12 阅读 60

题目描述:

Problem #2974 - ECNU Online Judgeicon-default.png?t=M276https://acm.ecnu.edu.cn/problem/2974/

有个小坑:在比对之前要全部转小写...别的没啥问题

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

bool isValid(char *s){
	bool flag=true;
	if(!strcmp(s,"the") || !strcmp(s,"a") || !strcmp(s,"an") || !strcmp(s,"of") || !strcmp(s,"for") || !strcmp(s,"and")){
		flag=false;
	}
	return flag;
}

void toLow(char *s){
	int i=0;
	while(s[i]!='\0'){
		if(s[i]>='A' && s[i]<='Z'){
			s[i]=s[i]+'a'-'A';
		}
		i++;
	}
}

int main(){
	int T,sum;
	cin>>T;
	getchar();
	char word[105];
	char ch;
	for(int t=0;t<T;t++){
		sum=0;
		int i=0;
		while(scanf("%c",&ch)!=EOF && ch!='\n'){
			if(ch!=' '){
				word[i]=ch;
				i++;
			}else{
				word[i]='\0';
				i=0;
				toLow(word);
				if(isValid(word)) sum++;
			}
		}
		word[i]='\0';
		toLow(word);
		if(isValid(word)) sum++;
		
		printf("case #%d:\n",t);
		cout<<sum;
		if(t!=T-1){
			cout<<endl;
		}
	}
	
}
举报

相关推荐

0 条评论