1 条题解
-
0
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
- 上传者