将字符串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++;

}

s1[i] = ‘\0‘;

}

i++;

}

i = 0;

j++;

}

}

int main()

{

char arr1[] = "qwdcgje";

char arr2[] = "abcdefg";

/*char arr1[] = { ‘q‘, ‘w‘, ‘d‘, ‘c‘, ‘g‘, ‘j‘, ‘e‘ };

char arr2[] = { ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘e‘, ‘f‘ }; 字符数组后面没有0,不知道什么时候停下,所以出错*/

my_squeeze(arr1, arr2);

printf("%s\n", arr1);

system("pause");

return 0;

}

				
时间: 2024-12-26 02:01:01

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

Java中String直接赋字符串和new String的区别

解析Java中的String对象的数据类型 1. String是一个对象.  因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null: 3. String str=”kvill”:   String str=new String (“kvill”);的区别:  在这里,我们不谈堆,也不谈栈,只先简单引入常量池这个简单的概念.  常

利用截取字符串,生成已声明的字符串中的4位随机验证码。

string str = "akdjkaflajfaljfqpjwojhflkjallaajfjadjlajdaffksbvcalihwhkqekq12304010580473639601"; int sum = str.Length; Console.WriteLine(sum);//计算字符串的长度,sum=80,可以不输出sum的结果. Random r = new Random(); //先从0到79中随机生成一个数. int i1 = r.Next(79); int i2 =

Java中String直接赋字符串和new String的区别 如String str=new String(&quot;a&quot;)和String str = &quot;a&quot;有什么区别?

百度的面试官问 String A="ABC"; String B=new String("ABC"); 这两个值,A,B 是否相等,如果都往HashSet里面放,能放下吗? 答:A==B 不等,但是A.equals(B)相等:因为相等,所以都往HashSet里面放不下,只能放一个 这个问题涉及到常量池的概念, 问:String str=new String("a")和String str = "a"有什么区别? 答: ==与e

python中的数据类型及字符串操作

1. 基本数据类型概况 1, int 整数 2. str 字符串 3. bool 布尔值 4. list 列表. 一般存放大量的数据 ["门神xxxx", "风扇哥xxxx", 元素] 5. tuple 元组. 只读列表, 只能看啥也不能干. (元素, 元素) 6. dict 字典. {"风扇哥":"王伟哲", "wlh": "王力宏"} 7. set 集合 {"风扇哥&quo

C语言:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删去,-将a所指字符串中的字符和b所指字符串中的字符的顺序交叉,-将形参s所指字符串中的所有数字字符顺序前移,

//函数fun功能:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删去,s所指串中剩余的字符形成的新串放在t所指的数组中. 1 #include <stdio.h> 2 #include <string.h> 3 4 void fun(char *s, char t[]) 5 { 6 int i=0,j=0; 7 while (s[i] != '\0') 8 { 9 if (i % 2 == 0) 10 { 11 if ((int)(s[i]) % 2 == 1)//判断A

linux中常用时间和字符串之间相互转化

在Linux中经常会遇到时间和字符串相互转化的情形,有两个函数专门对应相应的转化. 1.时间转字符串函数strftime 函数原型:size_t strftime(char *s,size_t maxsize,char *format,conststruct tm *timeptr) strftime函数对timeptr指向的tm结构所代表的时间和日期进行格式编排,其结果放在字符串s中.该字符串的长度被设置为(最少)maxsize个字符.格式字符串format用来对写入字符串的字符进行控制,它包

oracle中如何判断一个字符串是否含有汉字

oracle中如何判断一个字符串是否含有汉字 一.1 BLOG文档结构图 一.2 前言部分 一.2.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ①全角字符的判断,或者是含有汉字的字符串的判断 本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力. 一.2.2 实验环境介绍 11.2.0.3  RHEL6.5 一.2.3 本文简介 看到网友问,怎么查询表中某个字段数据是不是包含了

在字符串中,寻找第一个只出现一次的字符

在字符串中,寻找第一个只出现一次的字符,如str="abddggdbacdd", 结果是c 三种方法: 1. 使用字符字典数组,每个元素是一个结构体,第一个字段记录字符出现的次数,第二个字段记录该字符在字符串中第一次出现的位置, 先遍历一遍字符串,对字符字典数组赋值,然后遍历一遍字符字典数组,找到第一个字段为1,且位置最小的字符即为需要寻找的字符.如下: struct node{ int num; //出现次数 int index; //首次出现的位置 }; char str[1000

[LeetCode] Unique Substrings in Wraparound String 封装字符串中的独特子字符串

Consider the string s to be the infinite wraparound string of "abcdefghijklmnopqrstuvwxyz", so s will look like this: "...zabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcd....". Now we have another string p. Your job is to find