愿你坚持不懈,努力进步,进阶成自己理想的人

—— 2017.09, 写给3年后的自己

PAT-课后练习1-(A)查找字符串

编程实现:
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
输入一个字符,再输入一个以回车结束的字符串(少于80个字符),在字符串中查找该字符,如果找到,输出该字符在字符串中所对应的最大下标 (下标从0开始);否则输出"Not Found"。输出格式为"index = %d\n"

输入输出示例:括号内为说明
输入:
2 (repeat=2)
m (字符’m’)
programming (字符串"programming")
a (字符’a’)
1234 (字符串"1234")

输出:
index = 7 (’m’在"programming"中对应的最大下标是7)
Not Found ("1234"中没有’a’)

代码:

#include <iostream>
using namespace std;

struct Data {
    char key;
    char search_str[80];
};

int main() {
    int i, j, repeat, maxIndex;
    Data *d = NULL;
    cin >> repeat;
    d = new Data[repeat];
    for(i=0; i<repeat; i++) {
        cin >> d[i].key;
        cin >> d[i].search_str;
    }
    for(i=0; i<repeat; i++) {
        maxIndex = -1;
        for(j=0; d[i].search_str[j]; j++) {
            if(d[i].search_str[j] == d[i].key) maxIndex = j;
        }
        if(maxIndex > 0) cout << "index = " << maxIndex;
        else cout << "Not Found";
        if(i<repeat) cout << endl;
    }
    
    return 0;
}