国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

CCF201409-3 字符串匹配(100分)

2019-11-10 21:53:42
字體:
供稿:網(wǎng)友

試題編號:201409-3
試題名稱:字符串匹配
時間限制:1.0s
內(nèi)存限制:256.0MB
問題描述:問題描述  給出一個字符串和多行文字,在這些文字中找到字符串出現(xiàn)的那些行。你的程序還需支持大小寫敏感選項:當(dāng)選項打開時,表示同一個字母的大寫和小寫看作不同的字符;當(dāng)選項關(guān)閉時,表示同一個字母的大寫和小寫看作相同的字符。輸入格式  輸入的第一行包含一個字符串S,由大小寫英文字母組成?! 〉诙邪粋€數(shù)字,表示大小寫敏感的選項,當(dāng)數(shù)字為0時表示大小寫不敏感,當(dāng)數(shù)字為1時表示大小寫敏感?! 〉谌邪粋€整數(shù)n,表示給出的文字的行數(shù)?! 〗酉聛韓行,每行包含一個字符串,字符串由大小寫英文字母組成,不含空格和其他字符。輸出格式  輸出多行,每行包含一個字符串,按出現(xiàn)的順序依次給出那些包含了字符串S的行。樣例輸入Hello15HelloWorldHiHiHelloHiHiGrepIsAGreatToolHELLOHELLOisNOTHello樣例輸出HelloWorldHiHiHelloHiHiHELLOisNOTHello樣例說明  在上面的樣例中,第四個字符串雖然也是Hello,但是大小寫不正確。如果將輸入的第二行改為0,則第四個字符串應(yīng)該輸出。評測用例規(guī)模與約定  1<=n<=100,每個字符串的長度不超過100。

問題鏈接:CCF201409試題。

問題描述:(參見上文)。

問題分析:這是一個簡單的字符串處理問題,關(guān)鍵是對有關(guān)字符串處理函數(shù)是否熟悉。

程序說明:有關(guān)字符串的處理,可以用C語言的函數(shù)實現(xiàn),也可用C++的string變量實現(xiàn)。

提交后得100分的C++語言程序如下:

/* CCF201409-3 字符串匹配 */#include <iostream>#include <cstring>using namespace std;const int N = 100;void mystrlwr(char *ps){    while(*ps) {        if('A' <= *ps && *ps <= 'Z')            *ps += 'a'-'A';        ps++;    }}int main(){    char key[N+1], s[N+1], lowerkey[N+1], lowers[N+1];    int option, n;    // 輸入數(shù)據(jù)    cin >> key >> option >> n;    // 獲得key的小寫字符串,放在變量lowerkey中    strcpy(lowerkey, key);    mystrlwr(lowerkey);    // 循環(huán)處理    for(int i=1; i<=n; i++) {        cin >> s;        if(option == 0) {   // 大小寫無關(guān)            strcpy(lowers, s);            mystrlwr(lowers);            if(strstr(lowers, lowerkey))                cout << s << endl;        } else { // option = 1,大小寫有關(guān)            if(strstr(s, key))                cout << s << endl;        }    }}在gcc環(huán)境中,不支持函數(shù)strlwr(),所以需要自己寫一個函數(shù)mystrlwr(),在Dev-C++環(huán)境中,是支持函數(shù)strlwr()的,不需要自己寫該函數(shù),上述的函數(shù)mystrlwr()可以直接寫為strlwr()。

以下這個程序提交后只得了50分,希望哪位幫助改進(jìn)一下:

/* CCF201409-3 字符串匹配 */#include <iostream>#include <cctype>#include <string>using namespace std;int main(){    string key, s, kt, st;    int option, n;    // 輸入數(shù)據(jù)    cin >> key >> option >> n;    // 獲得key的小寫字符串,放在變量kt    kt = s;    for(int i=0; i<(int)kt.size(); i++)        if(isupper(kt[i]))            kt[i] = tolower(kt[i]);    // 循環(huán)處理    for(int i=1; i<=n; i++) {        cin >> s;        if(option == 0) {   // 大小寫無關(guān)            st = s;            for(int i=0; i<(int)st.size(); i++)                if(isupper(st[i]))                    st[i] = tolower(st[i]);            int pos = st.find(kt);            if(pos >= 0)                cout << s << endl;        } else { // option = 1,大小寫有關(guān)            int pos = s.find(key);            if(pos >= 0)                cout << s << endl;        }    }    return 0;}


上一篇:RandomAccessFile使用

下一篇:jdbc之批處理

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: SHOW| 固阳县| 密云县| 福安市| 新化县| 酒泉市| 灵川县| 石家庄市| 安义县| 白银市| 会泽县| 永和县| 高州市| 股票| 唐海县| 锡林郭勒盟| 东乌珠穆沁旗| 上犹县| 化隆| 兰州市| 饶平县| 芜湖县| 都兰县| 衡南县| 泰兴市| 小金县| 宁晋县| 连南| 蒙城县| 西乡县| 潮州市| 舞钢市| 天门市| 嘉禾县| 潜山县| 栾城县| 沾化县| 清原| 泗洪县| 虞城县| 榆社县|