1 条题解

  • 0
    @ 2025-4-12 21:47:19

    C :

    #include "stdio.h"
    #include <string.h>
    void catstr(char *des,char *sour)
    {
      int end=strlen(des);
      int i,j,num;
      num=strlen(sour);	
    	for(i=end,j=0;j<num;i++,j++)
    		des[i]=sour[j];
    	for(i=0;i<end+num;i++)
    	   printf("%c",des[i]);
    	printf("\n");
    }
    void main ()
    {
    	int i;char s[105],t[105];int m,n;
      for(i=1;i<=3;i++)
      {
          scanf("%s %s",s,t);
    m=strlen(s);n=strlen(t);   
    if(m+n>100)
          printf("Result String is cutted.\n");
        else
        catstr(s,t);  
      }
    	
    }
    

    C++ :

    #include <stdio.h>
    #include <string.h>
    
    #define MAXSTRLEN 100
    typedef char SString[MAXSTRLEN+2];
    typedef int Status;
    #define TRUE 1
    #define FALSE 0
    
    void InputString(SString &str) {
    	// 读取字符串
    	scanf("%s", str + 1); // 首先用scanf读取字符串
    	str[0] = strlen(str + 1); // 求出字符串的长度并保存在str[0]中
    }
    
    void PrintString(SString &str) {
    	// 	输出字符串
    	int i;
    	for (i = 1; i <= str[0]; i++) {
    		putchar(str[i]);
    	}
    }
    
    Status Concat(SString &T, SString S1, SString S2) { // 算法4.2
    	// 用T返回由S1和S2联接而成的新串。若未截断,则返回TRUE,否则FALSE。
    	int i;
    	Status uncut;
    	if (S1[0] + S2[0] <= MAXSTRLEN) { // 未截断
    		for (i = 1; i <= S1[0]; i++)
    			T[i] = S1[i];
    		for (i = 1; i <= S2[0]; i++)
    			T[i + S1[0]] = S2[i];
    		T[0] = S1[0] + S2[0];
    		uncut = TRUE;
    	} else if (S1[0] < MAXSTRLEN) { // 截断
    		for (i = 1; i <= S1[0]; i++)
    			T[i] = S1[i];
    		for (i = S1[0] + 1; i <= MAXSTRLEN; i++)
    			T[i] = S2[i - S1[0]];
    		T[0] = MAXSTRLEN;
    		uncut = FALSE;
    	} else { // 截断(仅取S1)
    		for (i = 0; i <= MAXSTRLEN; i++)
    			T[i] = S1[i];
    		uncut = FALSE;
    	}
    	return uncut;
    } // Concat
    
    int main(){
    
    	int i;
    	SString T, S1, S2;
    	for(i=0; i<3; i++){		// 处理三组字符串
    		InputString(S1);	// 输入字符串
    		InputString(S2);
    		if(Concat(T, S1, S2)){	// 如果没有被切断则输出连接后的结果
    			PrintString(T);
    			putchar('\n');
    		}else{				// 如果被切断了,则输出相应的提示
    			puts("Result String is cutted.");
    		}
    	}
    
    	return 0;
    }
    
    

    Java :

    import java.util.*;
    public class Main 
    {
    	public static void main(String[] args)
    	{
    		Scanner cin = new Scanner(System.in);
    		String s1,s2;
    		int n;
    		while(cin.hasNext())
    		{
    			s1=cin.next();
    			s2=cin.next();
    			if(s1.length()+s2.length()<=100)
    				System.out.println(s1+s2);
    			else
    				System.out.println("Result String is cutted.");
    		}
    		cin.close();
    	}
    }
    
    • 1

    信息

    ID
    1688
    时间
    1000ms
    内存
    32MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者