编程实现: 输入一个正整数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')
知识点
1.为什么不是6 而是7 因为题目要求:最大下标
2.getchar(); 别忘了
3.“str”中成员“length”的请求,该成员属于非类类型“char[80]”
[Error] request for member ‘length’ in ‘str’, which is of non-class type ‘char [80]’
4.string定义的用法 ---- string 在c++中的使用 好用!!!!!
getchar();//读取回车
string s;//定义
getline(cin,s);//输入
cout<<s<<endl;//输出
s.size(); //返回s 中字符的字符个数
//string 的遍历
#include<iostream>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
string s("Hiya");//string s2(s1); 将s2初始化为s1的一个副本
string::iterator it;
for(it=s.begin();it!=s.end();++it)
cout<<*it<<endl;
for(int i=0;s[i];i++)
cout<<s[i]<<endl;
cout<<s<<endl;
return 0;
}
代码
#include<iostream>
#include<string>
using namespace std;
int main(){
int repeat; cin>>repeat;
for(int i=0;i<repeat;i++){
char ch; cin>>ch;
getchar();
//char str[80]; cin.getline(str,80);
string str; getline(cin,str);
int j;
for(j=str.size()-1;j>=0;j--){
if(ch==str[j]){
cout<<"index = "<<j<<endl;
break;
}
}
if(j==-1){
cout<<"Not Found"<<endl;
}
}
}