Skip to content

Instantly share code, notes, and snippets.

@hsuan1117
Created December 4, 2023 12:56
Show Gist options
  • Save hsuan1117/b592b9b6ea84c8caa4e4c3aa23e10ea2 to your computer and use it in GitHub Desktop.
Save hsuan1117/b592b9b6ea84c8caa4e4c3aa23e10ea2 to your computer and use it in GitHub Desktop.
#include<stdio.h>
#include<string.h>
#define to_lower(x) ( ('a' <= x && x <= 'z') ? x : (('A' <= x && x <= 'Z') ? x - 'A' + 'a' : -1 ))
char resultA[100000+5];
char resultB[100000+5];
char in[100000+5];
char name[100000+5];
char sentence[100000+5];
int max = -1;
signed main () {
int N;
char keyword[1005];
scanf("%d %s ", &N, keyword);
for(int i=0;i<N;i++) {
fgets(in, 100000+5, stdin);
int j;
for(j=0;j<strlen(in);j++){
if(in[j] == ':') break;
}
strncpy(name, in, j);
name[j] = '\0';
strncpy(sentence, in+j+1, sizeof(in)-j);
sentence[sizeof(in)-j] = '\0';
//printf("name: %s\n", name);
//printf("sentence: %s\n", sentence);
char cpy[100000+5];
//int start;int last_start = 0;
//for(start = 1; start < strlen(sentence); start++) {
// if(sentence[start] != ',' && sentence[start] != '.' && sentence[start] != '!' && sentence[start] != '?' && sentence[start] != ' ') continue;
// strncpy(cpy, sentence+last_start, start - last_start);
// printf("len=%d (%2d,%2d)\n", start-last_start, last_start, start);
// cpy[start - last_start] = '\0';
// start++;
// last_start = start;
// printf("tok: %s\n", cpy);
//}
char* start;
char* sep = " !,.?";
char* brkt;
strcpy(cpy, sentence);
int cnt = 0;
for(start = strtok(cpy, sep);
start;
start = strtok(NULL, sep)) {
if(strlen(keyword) != strlen(start)) continue;
int pass = 1;
for(int k=0;k<strlen(keyword);k++) {
if(to_lower(start[k]) != to_lower(keyword[k])) {
//printf("error tok: %s %c %c\n", start, to_lower(start[k]), keyword[k]);
pass = 0;
break;
}
}
if(pass) {
cnt++;
}
}
if(cnt > max) {
//printf("%s %d\n", name, cnt);
max = cnt;
strcpy(resultA, name);
strcpy(resultB, sentence);
}
}
printf("%s: %s", resultA, resultB);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment