28 条题解

  • 11
    @ 2022-8-15 11:49:18

    今天这道题需要用到新的数据类型:srting 或者 char!同样今天也有两种方法哦~


    方法①

    1. 可以知道,其中没有空字符(空格),可以直接用 cin 语句来输入
    2. 遍历这个 char 型字符串,然后判断 if - else if
    3. (1)大于‘a’并且小于‘z’那么减去32(小写)
    4. (2)大于‘A’并且小于‘Z’那么加上32(大写)
    5. (3)其他的省略判断和代码
    6. a 的长度可以用 strlen(a) 来写出
    7. 最后再遍历变量 a 并且输出即可~
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        char a[81];
        cin.getline(a, 81, '\n');
        for (int i = 0; i < strlen(a); i++)
        {
            if ((a[i] >= 'a') && (a[i] <= 'z')) a[i] = a[i] - 32;
            else if ((a[i] >= 'A') && (a[i] <= 'Z')) a[i] = a[i] + 32;
        }
        for (int i = 0; i < strlen(a); i++) cout << a[i];
        return 0;
    }
    

    方法②

    1. 用 string 型变量 a 来存储
    2. 用 getline(cin, a) 来输入变量
    3. 遍历方法同 方法①
    4. 此处拓展 ASCII码 的知识,a 为97,z 为122,A 为65,Z 为90,空格 为32
    5. string型变量长度可以用 a.size() 来判断
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        string a;
        getline(cin, a);
        for (int i = 0; i < a.size(); i++)
        {
            if ((a[i] >= 'a') && (a[i] <= 'z')) a[i] = a[i] - 32;
            else if ((a[i] >= 'A') && (a[i] <= 'Z')) a[i] = a[i] + 32;
        }
        for (int i = 0; i < a.size(); i++) cout << a[i];
        return 0;
    }
    
    • @ 2023-4-5 8:43:51

      不用getline(),不管是char还是string都可以直接用cin输入。


      char:

      char a[81];
      cin>>a;
      

      string:

      string s;
      cin>>s;
      
    • @ 2023-8-12 18:18:38

      @ 多年经验,确实如此

    • @ 2023-12-4 21:10:42
      #include<bits/stdc++.h>
      using namespace std;
      char s[9999];
      int main(){
      	scanf("%s",s+1);
      	int l=strlen(s+1);
      	for(int i=1;i<=l;i++){
      		if(s[i]>='a' && s[i]<='z'){
      			s[i]-=32;
      		}
      		else{
      			if(s[i]>='A' && s[i]<='Z'){
      				s[i]+=32;
      			}
      		}
      		cout<<s[i];
      	}
      	return 0;
      } 
      
  • 6
    @ 2022-8-2 17:53:37
    终于学完L4辣!
    这道题的变量不能是int,应该是string。
    我的变量用a来代替;
    for (int i = 0; i < a.length(); i++)
    {
        if ((a[i] >= 'a') && (a[i] <= 'z'))
        {
            a[i] = a[i] - 32;//小写字母
        }
        else if ((a[i] >= 'A') && (a[i] <= 'Z'))//大写字母
        {
            a[i] = a[i] + 32;
        }
    }
    ASCII表的话大小写之间差32
    然后就是注意a[i] = a[i] - 32不能写成
    a[i] -= 32因为这样a[i]就是一个数字了
    (别问我是怎么知道的)
    
    八月的第一个题解!!!
    • @ 2024-4-9 20:47:21

      不行啊😏题目说了不要转小写

  • 5
    @ 2023-5-20 15:14:48
    #include <bits/stdc++.h>//请放心,AC过
    using namespace std;
    int main(){
        string a;
        cin >> a;
        for (int i = 0; i < a.length(); i++){
            if (a[i] >= 'A' && a[i] <= 'Z'){
                a[i] += 32;
            }else if (a[i] >= 'a' && a[i] <= 'z'){
                a[i] -= 32;
            }
        }
        cout << a;
        return 0;
    }
    
    • 5
      @ 2022-12-30 19:59:04
      #include <iostream>
      using namespace std;
      int main()
      {
          string s;
          cin >> s;
          for (int i = 0;i < s.length();i++)
          {
              if (s[i] >= 'a' && s[i] <= 'z')
              {
                  s[i] -= 32;
              }
              else if (s[i] >= 'A' && s[i] <= 'Z')
              {
                  s[i] += 32;
              }
          }
          cout << s;
          return 0;
      }```很简单,这个比较通俗。
      
      • 4
        @ 2022-4-24 15:56:42

        鼓励大家写题解,但注意题解格式。

        给代码两端加上这个会舒服一些

        ```cpp

        你的代码

        ```

        </span>

        这个点在键盘的左上角tab上面那个键,注意切换输入法

        #include<iostream>
        using namespace std;
        int main()
        {
            int n;
            cin>>n;//这是一个注释
            return 0;
        } 
        

        请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

        抄袭题解一经发现直接取消成绩。

        • 2
          @ 2024-5-1 12:37:40

          用头文件还是挺好的,但不排除L4里学的办法

          #include <iostream>  
          #include <string>  
          #include <cctype>  
            
          std::string toggleCase(const std::string& input) {  
              std::string result;  
              for (char c : input) {  
                  if (std::isupper(c)) {  
                      result += std::tolower(c);  
                  } else if (std::islower(c)) {  
                      result += std::toupper(c);  
                  } else {  
                      result += c; // 其他字符保持不变  
                  }  
              }  
              return result;  
          }  
            
          int main() {  
              std::string str;  
              std::cin>>str;
              std::string toggled = toggleCase(str);  
              std::cout << toggled << std::endl;  
              return 0;  
          }
          
          • 2
            @ 2024-3-16 20:25:04
            #include <iostream>
            using namespace std;
            int main()
            {
                string s;
                cin >> s;
                for (int i = 0;i < s.length();i++)
                {                                         //so easy
                    if (s[i] >= 'a' && s[i] <= 'z')
                    {
                        s[i] -= 32;
                    }
                    else if (s[i] >= 'A' && s[i] <= 'Z')
                    {
                        s[i] += 32;
                    }
                }
                cout << s;
                return 0;
            }
            
            
            • 2
              @ 2024-2-25 15:50:08
              #include <bits/stdc++.h>
              using namespace std;
              
              int main()
              {
                  string a;
                  cin >> a;
                  for (int i = 0; i < a.length(); i++){
                      if (a[i] >= 'A' && a[i] <= 'Z'){
                          a[i] += 32;
                          cout << a[i];
                          continue;
                      }
                      if (a[i] >= 'a' && a[i] <= 'z'){
                          a[i] -= 32;
                          cout << a[i];
                          continue;
                      }
                      cout << a[i];
                  }
                  return 0;
              }
              
              • 2
                @ 2024-2-17 17:03:53
                #include<iostream>
                #include<cstring>
                using namespace std;
                char x;
                int main(){
                    while(cin>>x){
                        if(x>='A'&&x<='Z')//大写转小写
                            cout<<char(x+32);
                        else if(x>='a'&&x<='z')//小写转大写
                            cout<<char(x-32);
                        else//其他
                            cout<<x;
                    }
                    return 0;
                }
                
                • 2
                  @ 2023-11-25 11:55:12
                  #include <bits/stdc++.h>
                  using namespace std;
                  int main(){
                      string s;
                      cin >> s;
                      for (int i = 0;i < s.length();i++){
                          if (s[i] >= 'A' && s[i] <= 'Z'){
                              s[i]+=32;
                          }
                          else if (s[i] >= 'a' && s[i] <= 'z'){
                              s[i]-=32;
                          }
                      }
                      cout << s;
                      return 0;
                  }
                  
                  • 2
                    @ 2023-8-24 15:46:11

                    过辣!(L4的,没学翻讲义)

                        string a;
                        cin>>a;
                        for (int i=0;i<(int)a.length();i++)
                        {
                            if ('A'<=a[i] && a[i]<='Z')
                            {
                                a[i]+=32;
                            }
                            else if ('a'<=a[i] && a[i]<='z')
                            {
                                a[i]-=32;
                            }//一定要用else if,不然刚转小写又变回大写……
                        }
                        cout<<a;
                    
                    • 1
                      @ 2024-5-25 20:02:44
                      #include <iostream>
                      using namespace std;
                      int main()
                      {
                          string c;
                          cin >> c;
                          for (int i = 0; i < c.length(); i++){
                              if (c[i] >= 'A' && c[i] <= 'Z')
                              {
                                  c[i] += 32;
                              }
                              else if (c[i] >= 'a' && c[i] <= 'z')
                              {
                                  c[i] -= 32;
                              }
                          }
                          cout << c;
                          return 0;
                      }
                      
                      • 1
                        @ 2024-3-31 15:43:45
                        #include<iostream>
                        using namespace std;char x;int main(){while(cin>>x){if(x>64&x<91){cout<<char(x+32);}else if(x>='a'&&x<='z'){cout<<char(x-32);}else cout<<x;}}
                        
                        • 1
                          @ 2023-12-9 14:31:01

                          本题考查了对ASCII码表的应用

                          判断字符是否为大小写,然后相应加减32

                          数字符号不用管

                          #include <bits/stdc++.h>
                          using namespace std;
                          int main(){
                              string s;
                              cin>>s;
                              for (int i=0;i<s.length();i++){
                                  if (s[i]>='a' and s[i]<='z'){
                                      s[i]-=32;
                                  }
                                  else if (s[i]>='A' and s[i]<='Z'){
                                      s[i]+=32;
                                  }
                              }
                              cout<<s;
                          }
                          
                          • 1
                            @ 2023-11-4 21:30:32
                            #include <bits/stdc++.h> 
                            using namespace std;
                            int main()
                            {
                                string s;
                                cin >> s;
                                for(int i = 0; i < s.length(); i++)
                                {
                                    if(s[i] >= 'a' and s[i] <= 'z')
                                    {
                                        s[i] -= 'a' - 'A';
                                    }
                                    else if(s[i] >= 'A' and s[i] <= 'Z')
                                    {
                                        s[i] += 'a' - 'A';
                                    }
                                }
                                cout << s;
                                return 0;
                            }
                            
                            • 1
                              @ 2023-11-4 19:07:41

                              100分AC代码,请放心食用

                              可以给大家做做参考但

                              禁止抄袭

                              image

                              • 1
                                @ 2023-10-29 21:10:32

                                for (int i = 0; i < a.length(); i++){ if (a[i] >= 'A' && a[i] <= 'Z'){ a[i] += 32; }else if (a[i] >= 'a' && a[i] <= 'z'){ a[i] -= 32; } }

                                • 1
                                  @ 2023-8-4 19:45:17

                                  L2新手预习完来练手啦🎉️😄

                                  #include <bits/stdc++.h>
                                  using namespace std;
                                  int main()
                                  { 
                                      string a;//建立字符串变量
                                      cin >> a;
                                      for (int i = 0; i < a.length(); i++)//遍历字符串
                                      {
                                          if (('A' <= a[i]) && ('Z' >= a[i])) a[i] = a[i] + 32;//判断是否是大写字母,是的话转小写
                                          else if (('a' <= a[i]) && ('z' >= a[i])) a[i] = a[i] - 32;//判断是否是小写字母,是的话转大写
                                          cout << a[i];//输出
                                      }
                                      return 0;
                                  }
                                  

                                  AC,但是为啥输出区会有火星文? 在线等,不太急👀️

                                • 1
                                  @ 2023-7-24 17:08:53

                                  大小写转换基本应用

                                  这道题就是最最基本的大小写转换的应用,没什么好说的,上代码(附解析)。

                                  string a;
                                      cin>>a;
                                      int sum=a.length();
                                      for (int i=0;i<sum;i++)
                                      {//遍历字符串
                                          if (a[i]>='a' && a[i]<='z')
                                          {
                                              a[i]=a[i]-'a'+'A';
                                          }//如果是小写字符,那么转换成大写
                                          else if (a[i]>='A' && a[i]<='Z')
                                          {
                                              a[i]=a[i]-'A'+'a';
                                          }//如果是大写字符,那么转换成小写
                                      }
                                      cout<<a;
                                  
                                  • 1
                                    @ 2023-5-3 12:06:17
                                    
                                    

                                    #include <iostream> using namespace std; int main() { string a; cin >> a; for(int i=0;i<=a.length();i++) { if(a[i]>='a' && a[i]<='z') { a[i]-=32; } else if(a[i]>='A' && a[i]<='Z') { a[i]+=32; } } cout << a; return 0; }

                                    
                                    

                                    信息

                                    ID
                                    182
                                    时间
                                    1000ms
                                    内存
                                    16MiB
                                    难度
                                    5
                                    标签
                                    递交数
                                    3646
                                    已通过
                                    1314
                                    上传者