題目描述:讀入資料string[ ],然後讀入乙個短字串。要求查詢string[ ]中和短字串的所有匹配,輸出行號、匹配字串。匹配時不區分大小寫,並且可以有乙個用中括號表示的模式匹配。如「aa[123]bb」,就是說aa1bb、aa2bb、aa3bb都算匹配。
輸入:輸入有多組資料。
每組資料第一行輸入n(1<=n<=1000),從第二行開始輸入n個字串(不含空格),接下來輸入乙個匹配字串。
輸出:輸出匹配到的字串的行號和該字串(匹配時不區分大小寫)。
樣例輸入:
4aaba2b
ababb
a[a2b]b
樣例輸出:
1 aab2 a2b
4 abb
2023年北京航空航天大學計算機研究生機試真題
實現**:
#include#include#define max_length 20
static int isup(char ch) //是否是大寫字母
static int islow(char ch) //是否是小寫字母
static int is_equ(char ch1,char ch2) //判斷兩個字元是否相等,若是字母則忽略大小寫
int main(void)
pattern = (char *)malloc(max_length*sizeof(char));
scanf("%s",pattern);
for (i=0;iif (pattern[k]==']') //pattern的內沒有乙個字元與str[i][j]匹配
break;
else //pattern的內有乙個字元與str[i][j]匹配
}else
k++;
j++;
} if(!str[i][j]&&!pattern[k]) //都同時達到串的末尾,說明整個串匹配成功,輸出
printf("%d %s\n",i+1,str[i]);
} for(i=0;ifree(str[i]);
free(str);
free(pattern);
return 0;
}
字串匹配
time limit 1000ms memory limit 65536k 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表string2,string1和string2中保證不出現...
字串匹配
面試題 給一串很長的字串,要求找到符合要求的字串,例如目的串 123 1 3 2 12 3 這些都要找出來 思路一 利用兩層迴圈,逐個查詢目的串中的字元,比如先查詢字元 1 是否在長字串中,再查詢 2 是否在長字串中,直到目的串遇到 0 是 include include include int m...
字串匹配
這一道題類似正規表示式 實現支援如下特性的字串匹配程式 1 可匹配任意字元 0 次或者 1 次,如 a?可匹配 a 或者 2 可匹配任意單個字元 3 可匹配任意字元任意多次,如 a 可匹配 a aa 4 可匹配任意字元至少 1 次,如 a 可匹配 a aa 該項可選 輸入 模式字串和待匹配字串,如 ...