精华内容
下载资源
问答
  • 如何删除一个字符串中一个字符

    千次阅读 2020-04-09 08:36:43
    一个字符串全都初始化为0。 用for循环,和要删除的字符逐个比较。 如果有相同就改变它的值为0。 代码如下: #include<bits/stdc++.h> using namespace std; int main(){ char c,a[100]={0}; cout<<...

    思路:

    1. 把一个字符串全都初始化为0。
    2. 用for循环,和要删除的字符逐个比较。
    3. 如果有相同就改变它的值为0。

    代码如下:

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	char c,a[100]={0};
    	cout<<"输入字符串:"<<endl; 
    	gets(a);
    	int len=strlen(a);
    	cout<<"输入要去除的字符:"<<endl;
    	cin>>c;
    	for(int i=0;i<len;i++){
    		if(a[i]==c) a[i]='0';
    	}
    	for(int i=0;i<len;i++){
    		if(a[i]!='0') cout<<a[i];
    	}
    	return 0;
    }
    

    在这里插入图片描述

    展开全文
  • 去掉重复的字符串及在第一个字符串中删除在第二个字符串中出现的字符两个程序,vs2013已经验证
  • 如何Python字符串中删除最后一个字符?Python支持负索引切片和正切片。负索引 -1 到-(iterable_length)开始。我们将使用负切片可迭代对象的末尾获取元素。索引 -1 迭代器获取最后一个元素。索引-2 迭代...

    如何从Python字符串中删除最后一个字符?

    Python支持负索引切片和正切片。负索引从  -1 到-(iterable_length)开始。我们将使用负切片从可迭代对象的末尾获取元素。

    索引  -1 从迭代器中获取最后一个元素。

    索引-2 从迭代器中获取倒数第二个元素。

    它一直持续到第一个元素。

    让我们来看一个例子。

    name = 'Geekflare'

    print(name[-1])

    print(name[-len(name)])复制

    上面的程序将使用负索引从字符串中打印最后一个字符和第一个字符。

    我们如何使用切片从字符串中删除最后一个元素  ?这只是一行代码。我们知道如何使用切片来提取字符串的一部分。让我们将相同的东西与负索引一起应用,以从字符串中删除最后一个字符。

    将字符串从开头切到最后一个before元素。

    buggy_name = 'GeekflareE'

    name = buggy_name[:-1]

    print(name)复制

    让我们关注上面代码中的第二行。这就是代码中的魔力所在。作为传统切片,它从起始索引提取到最后一个子字符串,但由于切片会忽略给定的第二个索引元素,因此它是一个子切片。

    Geekflare如果运行上面的代码,您将获得 输出。

    字符串方法  rstrip 从指定给它的字符串的右侧删除字符。因此,我们可以使用它删除字符串的最后一个元素。我们不必编写多行代码即可从字符串中删除最后一个字符。

    将最后一个元素赋予  strip 方法,它将通过删除最后一个字符来返回字符串。

    让我们看看代码片段。

    buggy_name = 'GeekflareE'

    展开全文
  • 输入两个字符串一个字符串中删除第二个字符串中的所有字符 比如输入“They are students." 删除之后的第一个字符串变成"The r stdnts." 思路是利用每个字符都有其对应的ASCII码值,将需要删除的字符的ascii为...

    输入两个字符串,从第一个字符串中删除第二个字符串中的所有字符
    比如输入“They are students."
    删除之后的第一个字符串变成"The r stdnts."

    思路是利用每个字符都有其对应的ASCII码值,将需要删除的字符的ascii为下标储存在数组当中。
    利用两个指针分别指向原字符串和需要删除的字符串。
    因为我们已经将需要删除的字符串中的字符所对应的ASCII码作为下标储存在数组当中,所以在比较的时候只需要看原字符串中的字符所对应的ASCII码作为下标在数组中是否为1.
    这样说可能不好理解。看一下具体例子

    假如原字符串为

    char str1[] = "They aaaare students.";
    

    需要删除的为

    char str2[] = "aeiou";
    

    然后我们需要一个数组储存结果(将其初始化为0)

    int a[256] = { 0 };
    

    两个指针分别指向这两个字符串

    char* pFast = str1;
    char* pSlow = str2;
    

    我们想实现的是在字符串str1中找到‘a’,‘e’,‘i’,‘o’,‘u’这几个字符并删除
    第一步我们想在str1中找到所有的字符‘a’并删除
    也就是说我们所有想删除的字符都在str2中

    接下来我们把需要删除的字符对应的ASCII码作为下标,然后储存在数组中
    利用一个for循环

    for (i = 0; i < n; ++i){
    	a[str2[i]] = 1;
    }
    

    str2[i]对应的是所有需要在str1中删除的字符
    将其对应的ASCII码作为下标也就是 a[str2[i]];
    将其赋为1,表示该字符需要删除

    接下来实现代码的核心部分

    while (*pFast){
    	if (a[*pFast] == 1){
    		*pFast++;
    	}
    	*pSlow++ = *pFast++;
    }
    

    因为我们需要删除的是str1中的字符,所以这里的 while(pFast)是为了遍历str1
    接下来 if (a[pFast] == 1) 说明我们要删除这个字符。我们给pFast++,让pFast指针跳过这个字符,指到下一个字符,然后再赋给pSlow。
    这样做本质上是遍历str1,如果这个字符不需要删除,就拿过来赋给pSlow,然后pFast和pSlow同时自增
    如果需要删除,先给pFast自增,再
    pSlow++ = *pFast++;(自增同时赋值)

    别忘了最后

    *pSlow = '\0';
    

    给字符串结尾!

    但是这样的思路还存在一些问题。先看上面这个思路的完整代码,我们再来修改

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    void DeleteStr(char* str1, char* str2){
    	char* pFast = str1;
    	char* pSlow = str2;
    	int a[256] = { 0 };
    	int i;
    	int n = strlen(str2);
    	for (i = 0; i < n; ++i){
    		a[str2[i]] = 1;
    	}
    	while (*pFast){
    		if (a[*pFast] == 1){
    			*pFast++;
    		}
    		*pSlow++ = *pFast++;
    	}
    
    	*pSlow = '\0';
    }
    int main(){
    	char str1[] = "They are students.";
    	char str2[] = "aeiou";
    	DeleteStr(str1, str2);
    	printf("%s\n", str2);
    	system("pause");
    	return 0;
    }
    

    这样去做题目中的要求我们可以实现,但是拓展之后,如果相同的字符连续出现,我们无法做到连续删除

    比如原字符串变成这样

    char str1[] = "They aaaare students.";
    

    仔细想想,来看我们上面的核心代码

    while (*pFast){
    	if (a[*pFast] == 1){
    		*pFast++;
    	}
    	*pSlow++ = *pFast++;
    }
    

    我们在确认一个字符需要删除之后,直接就跳过该字符,下一个字符没有进行判断是否应该删除就进行了赋值
    所以要将这段代码进行修改

    while (*pFast){
    	if (a[*pFast] == 0){
    		*pSlow = *pFast;
    		pSlow++;
    	}
    	pFast++;
    }
    

    这次我们判断

    if (a[*pFast] == 0){}
    

    就说明不需要删除可以赋值
    直接

    *pSlow = *pFast
    

    紧接着下来的一步我们不着急赋值,因为我们最终使用pSlow保存的结果,所以每赋值一次就先给pSlow++,这是pSlow++放在if语句中的原因。试想如果将pSlow++放在if语句之外,那么我们没有给pSlow赋值,指针也会不断往前走,这样肯定会出问题。
    先给pSlow++之后,在if语句之外给先给pFast++
    这时开始第二次循环
    这样做就能够实现在每一次赋值之前进行判断,就算相同字符连续出现也可以实现删除
    完整代码如下

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    void DeleteStr(char* str1, char* str2){
    	char* pFast = str1;
    	char* pSlow = str2;
    	int a[256] = { 0 };
    	int i;
    	int n = strlen(str2);
    	for (i = 0; i < n; ++i){
    		a[str2[i]] = 1;
    	}
    	while (*pFast){
    		if (a[*pFast] == 0){
    			*pSlow = *pFast;
    			pSlow++;
    		}
    		pFast++;
    	}
    	*pSlow = '\0';
    }
    int main(){
    	char str1[] = "They aaaare students.";
    	char str2[] = "aeiou";
    	DeleteStr(str1, str2);
    	printf("%s\n", str2);
    	system("pause");
    	return 0;
    }
    
    展开全文
  • 字符串1字符串2的字母挨个找遍,所以要遍历字符串2 // 2.将字符串1出现的字母删掉,用splite,【split("指定字符串"),用来切割字符串中指定的字符串的,返回的是字符串的数组】 // 3.把返回的数组...
    //    1.在字符串1中把字符串2中的字母挨个找一遍,所以要遍历字符串2
    //    2.将字符串1中出现的字母删掉,用splite,【split("指定字符串"),用来切割字符串中指定的字符串的,返回的是字符串的数组】
    //    3.把返回的数组变成字符串,用join【join用来对数组进行拼接】
        var a = "abcdefgabcdefgabcdefgabcdefg";
        var b = "cd";
    //    for(var i = 0;i<b.length;i++){
    //        a = a.split(b[i]).join("");
    //    }
    //    console.log(a);


    //    第二种方法  使用replace方法;
          var patt = /cd/g;
          var res = a.replace(patt,"");
          console.log(res);
    展开全文
  • 输入两个字符串第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 第一种思路 直接通过遍历,我们依次判定第一个...
  • 因为字符串是不可变的,为了从字符串中删除一个字符,每当需要不同的字符串值时,都必须创建一个字符串。您可能想知道为什么字符串是不可变的,因为每次更改字符时都必须生成一个全新的字符串。毕竟,C字符串...
  • 字符串中如何删除一个字符

    万次阅读 多人点赞 2019-04-18 00:00:38
    字符串中我们怎么删除一个字符 第一种办法,找到该字符,后面的字符挨个挨个往前移动。直接上代码: #include using namespace std; void deletestr_T(char *str, char ch) { int len = strlen(str); for (int i = 0...
  • 删除字符串中所有指定的字符,将结果保存到一个新的字符串中并输出*/ #include<stdio.h> #include<string.h> main() { char str[100],s[100],c; int i=0,j=0; printf("请输入一个字符串:"); ...
  • 从一个字符串(A)中删去一个字符串(B)已经出现的字符 1.首先要对另一个字符串进行标记 标记的方法有很多我举一个例子: 用一个bool数组来存26个字母并且对他们初始化为false,如果另外那个字符串存在,则将它...
  • 输入两个字符串一个字符串中删除第二个字符串中所有的字符 例如,输入str1为“ They are students.” 和str2为 “aeiou”, 则删除之后的第一个字符串变为“Thy r stdnts.” 题目分析:如果使用最简单多次遍...
  • 今天机试做了一道题: ...思路:首先要将第一个字符串中的每个字符截取出来,截取成单个字符,然后用contains方法进去比较,如果第二个字符串中包含有第一个字符串中的字符,就舍弃掉,如果不包含则保留使用Stri...
  • C删除字符串中的最后一个字符

    千次阅读 2021-05-21 02:59:38
    该程序删除每个单词的最后一个字符.#include#include#includeint main(int argc, char*argv[]){char *string;char *ptr;string = (char*)malloc(100);puts("Input a String");fgets(string,100,stdin);printf(...
  • 输入两个字符串一个字符串中删除第二个字符串中的所有字符 比如输入第一个字符串:“They are students." 第二个字符串: "aeiou" 删除之后的第一个字符串变成"The r stdnts." 题目分析(思路): 创建三个...
  • 删除一个字符串中重复的字符,借助插入排序的思想向前搜索。
  • 原题如下:输入2个字符串一个字符串中删除第二个字符串中的所有字符 输入 'They are students' 'aeiou' 输出:Thy r stdnts (如果是你,你第一时间想到的是用什么方法呢?) 当时使用的方法如下,因为...
  • 题目描述:输入两个字符串一个字符串中删除第二个字符串中所有的字符。 例如:输入"They are students.",输入"aeiou",则删除之后的第一个字符串变为"Thy r stdnts." 思路:建立数组,将字符串 2 的字符在...
  • 习题5.9 键盘上输入一个字符串一个字符,字符串中删除给定的字符。 代码块: package App; import java.util.*; public class App1 { public static void main(String[] args) { String str; Scanner ...
  • 通过遍历,我们依次判定第一个字符串中是否存在第二个字符串中的第i个字符,如果存在,则删除该字符,因此该方法就删除而言的时间复杂度为O(n^2)。 显然,整个算法的时间复杂度还是较大的。 空间兑换时间的方法: ...
  • 2.数组的下标是字符串的返回字符,因为char可以转int,这样每一个字符都有一个独一的数组元素,并且字符对应 的ASCII码值是它的数组下标, 3.把第二个字符串的字符所对应的数组元素全部按置为1,反正是见到它们就...
  • import java.util.Scanner; public class Main{ public static void main(String[]args){ Scanner str = new Scanner(System.in); String STR = str.... /***system.in.read()方法的作用是键盘读出一个字符
  • String b = "abcabcabcadmin"; b=b.replace("admin",""); Java String.replace()方法用法
  • 输入两个字符串一个字符串中删除第二个字符串中所有的字符,例如:输入“They are students.“和"aeiou”,则删除之后的第一个字符串变成“Thy r stdnts"。 思路: 将第二个字符串的元素一一拿出用来和第一个...
  • Python 3.6我想从字符串中删除字符串列表。这是我第次失败的尝试:string = 'this is a test string'items_to_remove = ['this', 'is', 'a', 'string']result = list(filter(lambda x: x not in items_to_remove, ...
  • 编制函数fun,其功能是:删除一个字符串中指定的一、问题描述:键盘输入一个字符串给str和一个字符给c,删除str的所有字符c并输出删除后的字符串str。输入:第一行是一个字符串; 第二行是一个字符。输出:删除...
  • 输入两个字符串第一字符串中删除第二个字符串中所有的字符。例 如,输入”They are students.”和”aeiou”, 则删除之后的第一个字符串变成”Thy r stdnts.” - 输入描述: 每个测试输入包含2个字符串 - 输出...
  •  例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”。 方法1: package com.jredu.ch12; /** * 2、在字符串中删除特定的字符。 题目:输入两个字符串第一字符...
  • 这个代码,可以删除一个字符串中你想删除的字符或字符串
  • 输入两个字符串一字符串中删除第二个字符串中所有的字符 输入描述: “They are students” “aeiou” 输出描述: Thy r stdnts 程序代码: package com.yt.dayPractice; import java.util.ArrayList...
  • java中字符串如何去除最后一个字符方法。方法有很多。不过如果只是个测试,那哪种都可以。最简单易懂的方法利用substring()与length()String str = “abcdefg”;str.substring(0,str.length()-1);其他4条回答2010-09...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,418,528
精华内容 567,411
关键字:

从一个字符串中删去一个字符