1 条题解

  • 0
    @ 2025-4-7 21:19:28

    C :

    #include<stdio.h>   
    #include<stdlib.h>   
    #include<string.h>   
    #include<math.h>   
      
    char str[1000],string[1001][1001],string2[1001][1001];  
      
    int main()  
    {  
        int n,i,j,index = 0,k;     
        gets(str);  
        while(gets(string[index]))  
        {  
            if(strcmp(string[index],"}") == 0){  
                break;  
            }  
            index++;  
        }    
        for(i = 0;i < strlen(str);i++){  
            if(str[i] >= 'A' && str[i] <= 'Z'){  
                str[i] = str[i] - 'A' + 'a';  
            }  
        }  
        for(i = 0;i <= index;i++){    
            for(j = 0;j < strlen(string[i]);j++){     
                string2[i][j] = string[i][j];     
                if(string[i][j] >= 'A' && string[i][j] <= 'Z'){  
                    string[i][j] = string[i][j] - 'A' + 'a';  
                }  
            }    
            j = 0,k = 0;  
            for(j = 0,k = 0;j < strlen(string[i]);){       
                if(string[i][j+k] == str[k]){  
                    k++;         
                    if(k == strlen(str)){  
                        j = j+k;  
                    }  
                }    
                else{                    
                    if(string[i][j] != ' '){  
                        //string3[i][m++] = string2[i][j];   
                        printf("%c",string2[i][j]);  
                    }  
                    j++;  
                    k = 0;  
                }  
            }//for   
            printf("\n");  
        }  
        return 0;  
    }  
    
    

    C++ :

    #include <stdio.h>
    #include <string.h>
    
    char * Strlwr(char *str){
    	int i=0;
    	while(str[i]){
    		if('A'<=str[i] && str[i]<='Z'){
    			str[i] += 32;
    		}
    		i++;
    	}
    
    	return str;
    }
    
    int main(){
    	char subStr[1000];	// 用来存储需要删除的字符串
    	char str[1000];		// 用来存储待删除的整串
    	char strTmp[1000];
    	gets(subStr);		// 读取需要删除的字符串
    	Strlwr(subStr);
    	int subLen = strlen(subStr);	// 记录需要删除的字符串的长度
    	while(gets(str)){	// 获取整串
    		strcpy(strTmp, str);
    		Strlwr(strTmp);
    		int i=0, j=0;
    		while(str[i]){
    			if(str[i] == ' '){
    				i++;			// 如果当前是空格,则跳过这个空格
    			}else if(strncmp(strTmp+i, subStr, subLen) == 0){
    				i += subLen;	// 如果当前连续 subLen 个字符时需要删除的字符串,则跳过这个长度
    			}else{
    				str[j++] = str[i++];	// 如果不是上面两种情况,则拷贝字符
    			}
    		}
    		str[j] = '\0';		// 最后字符需要结尾
    
    		puts(str);	// 输出结果
    	}
    
    	return 0;
    }
    
    
    • 1

    信息

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