这个代码有个地方没有看懂 想知道是什么意思


#include<bits/stdc++.h>
#define Ll long long
using namespace std;
map<string,int>F;
string s,c;
int n,ans;
bool b[105];
string turn(string s){
    for(int i=0;i<s.length();i++)
        if(isupper(s[i]))s[i]=s[i]+'a'-'A';//s[i]=s[i]+'a'-'A是什么意思呢
    return s;
}
int main()
{
    ios::sync_with_stdio(0); 
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>s,F[turn(s)]=i;//,cout<<s<<endl;
    getline(cin,s);//这句是什么意思呢?
    getline(cin,s);

    for(int i=0;i<s.length();i++)
        if(isalpha(s[i]))c+=s[i];else{
            int x=F[turn(c)];
            if(x&&!b[x])ans++,b[x]=1;
            c="";
            if(s[i]=='.')memset(b,0,sizeof b);
        }cout<<ans;
}

s[i]=s[i]+'a'-'A';就是把大写字母转换成小写字母
getline(cin, s);就是从输入流读入一行存到s里