squeeze(s1,s2),将字符串s1中任何与字符串s2中匹配的字符都删除

void squeeze(char a[],char  b[])
{
        //要实现把s2的任意字符如果出现的话就在s1中删除
        //1.首先判断s1[j]==s2[i]&&s1[j]=='\0'
    int j,i;
    for( j=0;b[j]!='\0';j++)//遍历一遍b[]
    {
            for(i=0;a[i]!='\0';i++)//遍历一遍a
            {
                    if(a[i]==b[j])
                    for(int m=i;(a[m]=a[1+m])!='\0';m++);//消除元素

            }
    }

}
//其实里面那些{}可以删掉 不过删了的话就不美观了

原文地址:https://www.cnblogs.com/my-study/p/12236497.html

时间: 2024-10-15 17:35:06

squeeze(s1,s2),将字符串s1中任何与字符串s2中匹配的字符都删除的相关文章

将字符串s1中的任何与字符串s2中字符匹配的字符都删除

编写一个程序,将字符串s1中的任何与字符串s2中字符匹配的字符都删除. 函数原型:void my_squeeze(char s1[], char s2[]) #include <stdio.h> void my_squeeze(char s1[], char s2[]) { int i = 0; int j = 0; while (s2[j]) { while(s1[i]) { if (s2[j]==s1[i]) { while (s1[i+1]) { s1[i] = s1[i + 1]; i

其他文本处理命令以及bash变量中的一些字符串的处理方法

其他的文本处理命令: 1.wc 2.cut命令: cut - 在文件的每一行中提取片断 注意:能够被cut修剪的文件或数据内容,一般是具有某种特定格式或结构的文本文件或数据内容: 如 :/etc/passwd 格式:cut [OPTION]... [FILE]... 常用选项: -d, --delimiter=DELIM:指定在实施修剪操作时所使用的字段分隔符号,默认是TAB(空白字符): -f, --fields=LIST:根据指定的字段分隔符号来指定要保留的字段编号列表: LIST可以称为字

bash的变量中存放的字符串的处理方式

bash变量: 弱变量: 1.无需实现定义即可应用: 2.变量没有数据类型的硬性要求,默认是字符型: 1.字符串切片: ${#VAR}:返回字符型变量的变量值长度: ${VAR:offset}:返回字符型变量中第"offset"位置之后的内容,不包括第"offset"位置的字符: offset取值范围:0-$[${#VAR-1}] ${VAR:offset:number}:返回字符型变量中从第"offset"个字符后开始长度为"numb

hdu 2203 亲和串(给两个字符串s1,s2,问s2可不可能出现在以s1为循环节的串中)

1.strcat函数,strcat(char *s , char *p);注意这里的s和p所指内存区域不可以重叠且s必须有足够的空间来容纳p的字符串 2.strcpy函数,strcpy(char *s,char *p),将p拷贝到s 3.代码: #include<cstdio> #include<cstring> using namespace std; char s1[1000000],s2[100005],t[1000000]; int len1,len2; //int LCP

经典算法面试题目-判断s2是否是s1的旋转字符串(1.8)

题目 Assume you have a method isSubstring which checks if one word is a substring of another. Given two strings, s1 and s2, write code to check if s2 is a rotation of s1 using only one call to isSubstring ( i.e., "waterbottle" is a rotation of &qu

返回指定字符串位置的函数FIELD(S,S1,S2,...) 与 FIND_IN_SET(S1,S2) 函数

FIELD(S,S1,S2,...)  与 FIND_IN_SET(S,S1) 函数  ------> 这2个函数都是返回指定字符串在源串中的出现的位置(皆是第一次出现的位置),但2个函数的参数不一样,前者是以列表形式的参数,后者是整体为一个整串的参数.(上边S皆为指定串,前者S1和S2为串列表,后者S1为一个整串) FIELD(S,S1,S2,...) : 返回指定字符串位置的函数FIELD(S,S1,S2,...) FIELD(S,S1,S2,...)返回字符串s在列表s1,s2,.....

判断字符串s2能否由s1旋转得到

/* * 判断s2能否由s1旋转得到 * 已知isSunString函数,但只能调用一次 * 思路:s1=xy; s2=yx;令s1=s1+s1=xyxy;则s2必为s1的子串 */ import java.util.Scanner; public class RotateString { static boolean isSubString(String s1,String s2){ //也可以用KMP来判断,暂时写不出来额 for(int i=0;i<s1.length()/2;i++){

C 在一个字串s1中查找一子串s2,若存在则返回s1中s2的个数和位置

在一个字串s1中查找一子串s2,若存在则返回s1中s2出现次数和位置 #include<stdio.h> #include<string.h> void main() { char s1[100],s2[10]; int i,j,k,len1,len2,b[10]; gets(s1); gets(s2); len1=strlen(s1); len2=strlen(s2); for(i=0,k=0;i<len1;i++) { for(j=0;j<len2;j++) if(

判断s2是否能够被通过s1做循环移位(rotate)得到的字符串是否包含

问题:给定两个字符串s1和s2,要求判断s2是否能够被通过s1做循环移位(rotate)得到的字符串包含.例如,S1=AABCD和s2=CDAA,返回true:给定s1=ABCD和s2=ACBD,返回false. 看到 这里的一个思路 字符串移位包含的问题(编程之美) 引用原文 “   解法二:我们也可以对循环移位之后的结果进行分析. 以S1 = ABCD为例,先分析对S1进行循环移位之后的结果,如下所示: ABCD--->BCDA---->CDAB---->DABC---->AB