在元音之前,代码不会将大写字母转换为小写

时间:2016-01-24 10:48:21

标签: c++ string

Codeforces Problem-

当我输入一个由元音开头的大写字母时,它不会将大写字母转换为小写 E-G-输入 - aBAcAba 输出.B.c.b

int main() 
{
    int i;
    locale loc;
    string a;
    cin>>a;
    for(i=0;i<a.size();i++)
    {
        if(isupper(a[i]))
            a[i]=tolower(a[i]);
        if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
        {
            a.erase(a.begin()+i);
        }
        if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
            i--;
    }
    for(i=0;i<a.size();i++)
        cout<<'.'<<a[i];
    return 0;
}

1 个答案:

答案 0 :(得分:2)

this.state

这不起作用,因为你已经从onInputChange(e) { this.setState({ input: e.target.value }, () => { console.log(`state: ${this.state}, value: ${e.target.value}`); // this is my checking }); } 删除了元音,所以减少不会发生,你跳过下一个字符。

您可能想要做

 if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
 i--;

并从for语句中删除增量。