编程实现:
输入一个正整数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;
}