c++方面的问题!!

char s[20];
cout<<"输入一个字符串:";
cin.getline(s,20);
for (int i=20;i>=0;i--)
{
    if (s[i]>='a'&&s[i]<='z')
    cout<<s[i];
}
    cout<<endl;

这个代码输出为什么一直出现‘t’

char s[20];,数组的下标是是从 0 开始的,不是从 1 开始的,即 s[0] ~ s[19]

char s[20];
cout<<"输入一个字符串:";
cin.getline(s,20);
for (int i=19;i>=0;i--)
{
    if (s[i]>='a'&&s[i]<='z')
    cout<<s[i];
}
    cout<<endl;

一看就是数组越界,你至少得从19开始遍历吧