问题标题: 酷町堂:3962

0
0
已解决
缪鲲鹏
缪鲲鹏
新手光能
新手光能
#include <iostream>
#include <cstring>
using namespace std;
int main() {
    int n;
    char a[10];
    cin>>n;
    for(int i=1;i<=n;i++) {
        cin>>a;
        for(int j=0;j<=strlen(a);j++) {
            if(a[j]<='Z')a[j]+='@'/2;
        }cout<<a<<endl;
    }
    return 0;
}

为什么每次输出总有一段乱码?


1
已采纳
吴君昊
吴君昊
新手光能
新手光能
对你代码修改:
你遍历字符串时,不该用strlen(a),应该用a.size()
if(a[j]<='Z')a[j]+='@'/2;你的这个if判定也有问题
根据提示自己修改吧
下面是我的代码
我的代码:
void dzx(string s){//void函数,我在函数中输出了,不要返回值
    循环(int i=0;i<s.size();i++){
        if(s[i]>='A'&&s[i]<='Z'){//判定字符串区域
            s[i]+=32;//加32是大A,Z至小a,z的askll码
        }
    }
    cout<<s<<endl;    
}//函数部分

main函数部分核心(变量自己定义):

cin>>n;//输入n

getling(cin,s);吃n的换行,防止输出换行

循环(int i=1;i<=n;i++){//循环输入并引用函数值
        getline(cin,s); //输入
        dzx(s);//引用函数值
    }

祝你AC

0
刘宇航
刘宇航
初级守护
初级守护
对你代码修改:
你遍历字符串时,不该用strlen(a),应该用a.size()
if(a[j]<='Z')a[j]+='@'/2;你的这个if判定也有问题
根据提示自己修改吧
下面是我的代码
我的代码:
void dzx(string s){//void函数,我在函数中输出了,不要返回值
    循环(int i=0;i<s.size();i++){
        if(s[i]>='A'&&s[i]<='Z'){//判定字符串区域
            s[i]+=32;//加32是大A,Z至小a,z的askll码
        }
    }
    cout<<s<<endl;    
}//函数部分

main函数部分核心(变量自己定义):

cin>>n;//输入n

getling(cin,s);吃n的换行,防止输出换行

循环(int i=1;i<=n;i++){//循环输入并引用函数值
        getline(cin,s); //输入
        dzx(s);//引用函数值
    }

祝你AC

我要回答