问题标题: 酷町堂:3962

0
0
已解决
王俊杰
王俊杰
高级光能
高级光能

3962   字符串大写转小写
经验值:0
题目描述 Description
将字符串中的大写字母转为小写字符,然后输出这个字符串,多组测试数据。


 
输入描述 Input Description
第一行,一个正整数n,表示n组测试数据

接下来n行,每行一个字符串,仅包含字母和空格


 
输出描述 Output Description
n行,每行一个目标字符串


 
样例输入 Sample Input
3
Word
HavE
drEaM
样例输出 Sample Output
word
have
dream

不输出的代码: 
#include <iostream>
#include<cstdio>
#include <string>
using namespace std;
int n,m;
string a;
void pj(int n){
    cin>>n;
    for(int i=1;i<=n;i++){ 
        cin>>a[i];
    }
    for(int i=0;i<=n;i++){
        if(a[i]>='A'&&a[i]<='Z'){
            a[i]+=' ';
        }
    }
    cout<<a<<endl;
}
int main(){
    pj(n);
    return 0;
}
why 


0
已采纳
李瑞曦
李瑞曦
高级天翼
高级天翼

额,你要把函数里的2循环合并起来,所以

把:

 for(int i=1;i<=n;i++){ 
        cin>>a[i];
    }
    for(int i=0;i<=n;i++){
        if(a[i]>='A'&&a[i]<='Z'){
            a[i]+=' ';
        }
    }
    cout<<a<<endl;

改成:

for(int i=1;i<=n;i++){ 
        cin>>a;
        for(int i=0;i<=a.size()-1;i++){
            if(a[i]>='A'&&a[i]<='Z'){
                a[i]+=32;
            }
        }
        cout<<a<<endl;
    }

 

李瑞曦在2020-07-17 12:44:58追加了内容

@王俊杰    采纳我吧~

0
周明轩
周明轩
资深光能
资深光能
if(a[i]>='A'&&a[i]<='Z'){
            a[i]+=' ';
        }

是不对的,应改为

if(a[i]>='A'&&a[i]<='Z'){
            a[i]+=32;
        }

if(a[i]>='A'&&a[i]<='Z'){
            a[i]+=(int)(' ');
        }

望采纳,谢谢

周明轩在2020-07-17 12:50:26追加了内容

采纳楼上的吧

我要回答