PAT 字符串-02 删除字符串中的子串

 1 /*
 2  2 *PAT 字符串-02 删除字符串中的子串
 3  3 *2015-08-09
 4  4 作者:flx413
 5  5 */
 6
 7 #include<stdio.h>
 8 #include<string.h>
 9
10 void fun(char *str, char *substr) {
11     int i, j, k, flag;
12     int len = strlen(substr);
13
14     while(strstr(str, substr)) {                //如果字符串中存在子串
15         flag = 0;                               //初始化 flag = 0
16
17         for(i = 0; str[i]; i++) {
18             for(j = i, k = 0; substr[k] == str[j] && substr[k] != ‘\0‘; k++, j++) {
19                 if(substr[k + 1] == ‘\0‘) {     //找到子串第一次出现的位置 i,flag 赋值为1
20                    flag = 1;
21                 }
22             }
23             if(flag) {                          //对原来的字符串做删除
24                 for(; str[i + len]; i++) {
25                     str[i] = str[i + len];
26                 }
27                 str[i] = ‘\0‘;
28                 break;
29             }
30         }
31     }
32 }
33
34 int main() {
35     char str[81],substr[81];                //题目要求输入字符串长度不大于80,定义str[80]会出错
36     gets(str);
37     gets(substr);
38     fun(str, substr);
39     printf("%s", str);
40     return 0;
41 }
时间: 2025-01-07 03:08:08

PAT 字符串-02 删除字符串中的子串的相关文章

字符串-02. 删除字符串中的子串(20)

输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2. 输入格式: 输入在2行中分别给出不超过80个字符长度的.以回车结束的2个非空字符串,对应S1和S2. 输出格式: 在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串. 输入样例: Tomcat is a male ccatat cat 输出样例: Tom is a male import java.util.Scanner; public class Main { public static

字符串-02. 删除字符串中的子串

输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2. 输入格式: 输入在2行中分别给出不超过80个字符长度的.以回车结束的2个非空字符串,对应S1和S2. 输出格式: 在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串. 输入样例: Tomcat is a male ccatat cat 输出样例:Tom is a male import java.util.Scanner; public class Main { public static

[转载]字符串-02. 删除字符串中的子串(20)

输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2. 输入格式: 输入在2行中分别给出不超过80个字符长度的.以回车结束的2个非空字符串,对应S1和S2. 输出格式: 在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串. 输入样例: Tomcat is a male ccatat cat 输出样例: Tom is a male 1 #include<iostream> 2 #include<string> 3 using name

c之PAT刷题---删除字符串中的特定子串

改了好久还是没有全过,等明天再看吧!好好休息,明天继续. #include<stdio.h> #include<string.h> char *delete(char str1[80],char str2[80]){ int len1,len2,l;//l记录出现字符相同的起始位置 len1=strlen(str1); len2=strlen(str2); for(int i=0;str1[i]!='\0';i++){ if(str1[i]==str2[0]){ l=i;//记下相

easyui-combobox 中多选的默认值设置、获取多选值及JS包含字符串、删除字符串

1.项目中使用到combobox的多选值及相关操作,不多说,直接上代码: <input id="education" name="education" class="easyui-combobox" data-options="method:'get',valueField:'id',textField:'name',multiple:true,panelHeight:'auto',required:true, url:'${ct

删除字符串中的子串

输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2. 输入格式: 输入在2行中分别给出不超过80个字符长度的.以回车结束的2个非空字符串,对应S1和S2. 输出格式: 在一行中输出删除字符串S1中出现的所有子串S2后的结果字符串. 输入样例: Tomcat is a male ccatat cat 输出样例: Tom is a male #include<stdio.h> #include<string.h> int main(){ cha

字符串的查找删除---C++中string.find()函数与string::npos

给定一个短字符串(不含空格),再给定若干字符串,在这些字符串中删除所含有的短字符串 输入: 输入只有一组数据 输入一个短字符串(不含空格),再输入若干字符串直到文件结束为止 输出: 删除输入的短字符串(不区分大小写)并去掉空格 #include <stdio.h> #include <string> #include <iostream> #include <ctype.h> using namespace std; int main() { char st

[算法]删除字符串中重复的字符

如何删除字符串中重复的字符 问题描述: 删除字符串中重复的字符,例如,"good"去掉重复的字符串后就变成"god". 第一种方法: "蛮力法",最简单的方法就是把这个字符串看作是一个字符数组,对该数组使用双重循环进行遍历,如果发现有重复的字符,就把该字符置为'\0',最后再把这个字符数组中所有的'\0'去掉,此时得到的字符串就是删除重复字符后的目标字符串. 代码如下: package 删除字符串中重复的字符; public class Solu

删除字符串中指定位置的字符

/********************************************************************** * 版权所有 (C)2015, Wu Yingqiang. * * 文件名称:DelPosChar.c * 文件标识:无 * 内容摘要:删除字符串中指定位置的字符 * 其它说明:无 * 当前版本: V1.0 * 作 者: Wu Yingqiang * 完成日期: 20150115 * ***********************************