例如:
str1为 "asdfsa123fasdf123452345fasfasdf182734891624389sadfaklsjfklj"
str2为 "0123456789"
删除后
str1为 "asdfsafasdffasfasdfsadfaklsjfklj"
void del_chars(char *str, char *chars)
{
char ascii_buff[256] = {0};
char buf[strlen(str)];
char *ps1;
char *ps2;
ps1 = chars;
while (*ps1) { // 遍历chars,将要被删除的字符对应数组的位置置为1。
ascii_buff[*ps1++] = 1;
}
ps2 = str;
while (*ps2) { // 遍历str,将str中要被删除的字符也置为1。
if ( ascii_buff[*ps2] == 1 ) {
*ps2 = 1;
}
ps2++;
}
ps1 = str; // 将str中所有为1的位置清理掉。
ps2 = buf;
while (*ps1) {
if (*ps1 != 1) {
*ps2 = *ps1;
ps2++;
}
ps1++;
}
*ps2 = '\0';
strcpy(str, buf);
}
分享到:
相关推荐
算法训练 比较字符串 时间限制:1.0s 内存限制:512.0MB 编程实现两个字符串s1和s2的字典序比较。若它们不相等,则指出其第一个不同字
* 定义两个字符串s1 ,s2 * 比较两字符串的某两个相同位置时:(例如s1[i] s2[j] 这时i=j)有三种办法 * 1.把字符ch1变成ch2, 使得s1与s2字符串在该处相同 * 2.删除s1当中的该字符ch1,使得s1与s2字符串在该处相同 ...
leetcode数组下标大于间距 ...输入三个字符串s1、s2和s3,判断第三个字符串s3是否由前两个字符串s1和s2交错而成, 即不改变s1和s2中各个字符原有的相对顺序,例如当s1 = “aabcc”,s2 = “dbbca”, s3 =
本文实例讲述了JavaScript自定义函数实现查找两个字符串最长公共子串的方法。分享给大家供大家参考,具体如下: //查找两个字符串的最长公共子串 function findSubStr(s1,s2){ var S=sstr= ,L1=s1.length,L2=s2....
比较两个字符串s1和s2,输出:0表示s1与s2相等;1表示s1的字母序先于s2;-1表示s1的字母序后于s2 输入格式 输入两行,第一行输入一个字符串1,第二行输入字符串2。 输出格式 输出比较的结果 样例输入 abc abd ...
设s和t是给定的两个串,在主串s中找到等于子串t的过程称为模式匹配,如果在s中找到等于t的子串,则称匹配成功,函数返回t在s中的首次出现的存储位置(或序号),否则匹配失败,返回-1。t也称为模式。 简单的模式匹配...
:red_exclamation_mark: 警告:比慢 13 倍Handysort 这是一个 Go 包,实现了一个正确的比较函数来比较字母数字字符串的整数部分。 例如,这是字符串排序的默认结果: hello1hello10hello11hello2hello3这是方便的: ...
子序列是,一个字符串中的任意字符组成的序列,重点在于,不要求子序列是原字符串的连续序列。 如下例子所示,acg是abcdefg的子序列,但不是连续子序列。 abcdefg ==> acg 两个字符串的最大公共子序列的状态转移...
如果让你写一个程序检查字符串s2中是不是包含有s1。也许你会很直观的写下下面的代码: 复制代码 代码如下: #determine whether s1 is a substring of s2 def isSubstring1(s1,s2): tag = False len1 = len(s1...
C/C++面试之算法系列--几个典型的内存拷贝及字符串函数实现 写一个函数,完成内存之间的拷贝。[考虑问题是否全面,是否考虑内存重叠问题] 返回void *支持链式操作,参数类型是void *以支持任意类型的指针,输入...
数据结构 的习题 考研专用数据结构 的习题 考研专用数据结构 的习题 考研专用数据结构 的习题 考研专用数据结构 的习题 考研专用
给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 输入 输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在2到8之间。 输出 输出这个字符串的所有排列方式,每行一个排列。...
已知三个字符串分别为s='ababababcaabcbcaaaaaa',s1='caab', s2='bcb'。利用所 学字符串基本运算的函数得到结果串为:s3='caabcbcaaaaaacaaaaaa'。编程实现。 三、实验用设备仪器及材料 计算机 四、实验原理及...
问题:编写一个包含两个字符串s1和s2并返回s1和s2的最长公共子序列的函数 #example结果“ ABAZDC”,“ BACBAD” =>“ ABAD”“ AGGTAB”,“ GXTXAYB” =>“ GTAB”“ aaaa”,“ aa” =>“ aa” 这个问题来自一次...
s2 中删除某些字符使其变为 s1,则称字符串 s1 可以从字符串 s2 获得。例如,根据定义,"abc" 可以从 “abdbec” 获得,但不能从 “acbbe” 获得。 现在给你两个非空字符串 s1 和 s2(每个最多 100 个字符长)和...
7.14编一个程序,将两个字符串s1和s2进行比较。如果s1>s2,输出一个正数;s1=s2,输出0;s1<s2,输出一个负数。不要用strcmp函数。两个字符串用gets函数读入。输出的正数或负数的绝对值应是相比较的两个字符串相应...
最长的常见子序列问题是寻找两个给定字符串中存在的最长序列。 最大公共子序列算法,常用于犯罪鉴定、亲子鉴定等等的 DNA 比对。 1.1 子序列 让我们考虑一个序列S=<s1,s2,s3,s4,…,sn>。 一个序列Z=,z2,z3...
对于一个待求字符串S(S1,S2,…,Sn)以及另一个字符串Q(q1,q2,…,qn),SQ表示S和Q的级联,SQ=( S1,S2,…,Sn,q1,q2,…,qn)。令SQv是SQ减去最后一个字符所得字符串。判断Q是否是SQv的一个子串,如果Q是SQv...
作为结束符的中缀算术表达式已经保存在s1字符串中,转换后得到的后缀算术表达式拟存于s2字符串中。由中缀表达式转换为后缀表达式的规则可知:转换前后,表达式中的数值项的次序不变,而运算符的次序发生了变化,由...
(1)建立两个栈,一个S1用来存放操作符+ - * / ( ),另一个S2用来存放生成的逆波兰表达式(本文中为了方便用一个字符串来存放逆波兰表达式),操作符栈遵循越往栈顶操作符优先级越高的原则。 (2)从中缀表达式的...