题解 | #查找学生信息#
查找学生信息
https://www.nowcoder.com/practice/fe8bff0750c8448081759f3ee0d86bb4
本体思路很简单,但在输入上有一个关于输入的知识点要记住。
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; getchar();//cin后,输入缓冲区会留有空白符,getline遇到空白符,会停止接收,所以要getchar() map<string, string> stus; while(n--){ string stuinfo; getline(cin, stuinfo); //getline()遇到空白符,会停止接受,且会丢弃该空白符,所以输入m前面不需要getchar int pos = stuinfo.find(' '); string num = stuinfo.substr(0, pos); stus[num] = stuinfo; } int m; cin >> m; //后面的输入是cin,cin 读取输入时会忽略前导的空白字符,所以不需要getchar while(m--){ string chaxun; cin >> chaxun; if(stus.find(chaxun) != stus.end()){ cout << stus[chaxun] << '\n'; }else{ cout << "No Answer!\n"; } } } // 64 位输出请用 printf("%lld")