经典问题3---字符串的输入

#include <stdio.h>
#include<iostream>
#include<algorithm>
#include<string.h>

using namespace std;
struct student{
char id[20];a
char spe[20];
bool operator <(const student &E)const{

return strcmp(id,E.id)<0;

}
}buf[1000];
int main(){
  int N,m;
  while(scanf("%d",&N)!=EOF){
    for(int i=0;i<N;i++){
    scanf("%s",&buf[i].id);
//    getchar();
    gets(buf[i].spe);
    cout<<buf[i].id<<endl;
    cout<<buf[i].spe<<endl;


    }
    sort(buf,buf+N);
    cin>>m;
    while(m--){
        char no[20];
        cin>>no;
        int mid;
        for(int i=0,j=N-1;i<=j;){
        mid=(i+j)/2;
        if(strcmp(buf[mid].id,no)==0){
            break;
        }
        else if(strcmp(buf[mid].id,no)<0){
            i=mid+1;
        }
        else{
            j=mid-1;
        }

    }
        if(strcmp(buf[mid].id,no)!=0){
            cout<<"No Answer!\n"<<endl;
        }
        else{
            cout<<buf[mid].id<<buf[mid].spe<<endl;
        }
    }

  }


return 0;
}


函数 回车符 空格和制表符
scanf() 读入结束,不读走,要用getchar()将其读走 忽略,认为读入结束
gets() 读入结束,读走 读入,认为是字符串一部分

猜你喜欢

转载自blog.csdn.net/chunjiekid/article/details/79226018