3 条题解

  • 5
    @ 2023-10-16 13:02:49

    C++ 14解法新鲜出炉:🎉️ 【撒花】

    大致参考了下楼上的程序。也不是特别 ♂,主要还是含空格输入函数getline()的使用方法(特别强调:getline()会从输入的第一行开始读入,因此程序中需要加入 “ if(!i) continue; ” 对第一行输入n进行跳过)。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    
    char outs(char c) {
    	if(c>='A' && c<='Z') return c;
    	else if(c>='a' && c<='z') return c+'A'-'a';
        else ;
    
        return c;
    }
    
    int main(){
        int n;
        scanf("%d", &n);
    
        for(int i=0; i<=n; i++){
            string str;
            getline(cin, str);
    
            if(!i) continue;
    
            if((str[0]>='a'&&str[0]<='z') || (str[0]>='A'&&str[0]<='Z')) printf("%c", outs(str[0]));
            for(int j=1; j<str.length(); j++){
                if(str[j-1]==' ' && ((str[j]>='a'&&str[j]<='z') || (str[j]>='A'&&str[j]<='Z'))) printf("%c", outs(str[j]));
            }
            printf("\n");
        }
    
        return 0;
    }
    
    • 3
      @ 2023-10-6 15:51:37

      注:因其不安全性,gets函数于C11标准中被正式删除,同时引进了新函数gets_s代替之。届时请使用新函数。用法:gets_s(char* Buffer,int Size)

      代码如下:

      #include<cstdio>
      #include<cstring>
      using namespace std;
      char ch[200];
      void outs(char c) {
      	if (c >= 'A' && c <= 'Z') printf("%c", c);
      	else if (c >= 'a' && c <= 'z') printf("%c", c + 'A' - 'a');
      	return;
      }
      int main() {
      	int x;
      	scanf("%d", &x);
      	getchar();
      	while (x--) {
      		gets(ch);
      		outs(ch[0]);
      		for (int i = 1; i < strlen(ch); i++) {
      			if (ch[i] == ' ') outs(ch[i + 1]);
      		}
      		printf("\n");
      	}
      	return 0;
      }  
      
    • 1
      @ 2023-3-30 22:27:22

      C :

      #include<stdio.h>
      int main()
      {
      	int n,i,k;
      	char a[200],b,c;
      
      #ifndef ONLINE_JUDGE
      	freopen("in.txt","r",stdin);
      #endif
      	scanf("%d\n",&n);
      	while(n--)
      	{
      		i=0;k=0;
      		gets(a);
      		for(i=0;a[i]!='\0';i++)
      		{
      			if(a[i]==' ')
      				k=0;
      			else
      			{
      				if(k==0)
      				{
      					if(a[i]>='a')
      						a[i]-=32;
      					printf("%c",a[i]);
      					k=1;
      				}
      				else 
      				{
      					k=1;
      				}
      			}
      		}
      		printf("\n");
      	}
      return 0;
      }
      

      C++ :

      /*
      这一题很简单,用来练习字符串处理函数正好。
      */
      #include<stdio.h>
      #include<string.h>
      #include<ctype.h>
      
      int main()
      {
          int t;
          char c[101];
          int k,i;
          char * temp[10];
          scanf("%d\n",&t);
          for(k=0;k<t;k++)
          {
              gets(c);
              temp[0]=strtok(c," ");
              printf("%c",toupper(temp[0][0]));
              for(i=1;i<10;i++)
              {
                  temp[i]=strtok(NULL," ");
                  if(temp[i]==NULL)break;
                  printf("%c",toupper(temp[i][0]));
              }
              printf("\n");
          }
          return 0;
      }
      

      Java :

      import java.util.Scanner;
      import java.util.StringTokenizer;
      
      public class Main{
      	public static void main(String args[]){
      		Scanner in = new Scanner(System.in);
      		int T = in.nextInt();
      		in.nextLine();
      		while(T-- != 0){
      			StringTokenizer s = new StringTokenizer(in.nextLine(), " ");
      			while(s.hasMoreTokens()){
      				System.out.print(((s.nextToken()).toUpperCase()).charAt(0));
      			}
      			System.out.println();
      		}
      	}
      }
      
      • 1

      信息

      ID
      1742
      时间
      1000ms
      内存
      128MiB
      难度
      10
      标签
      (无)
      递交数
      89
      已通过
      3
      上传者