精华内容
下载资源
问答
  • c语言删除指定字符串
    千次阅读
    2021-05-19 07:54:42

    你的错误就在于没有充分认识到c语言的字符串是以\0为结束符的

    你的移动了字符后,没有在新字符传的尾部加上\0,

    导致的结果是输出的数据后面出现有重复的字符。

    你的算法存在不足是你出现这个问题的主要原因

    你应该这样处理:

    循环处理s1的所有字符,如果该字符出现在s2中,那么就不再处理

    如果没有出现在s2中,就将该字符保存在第三个字符串中,

    最后将第三个字符串的数据尾部增加\0后拷贝到s1中

    这个效率要比你的算法效率高,不易出错

    下面是实例代码:

    /**

    * 将字符串s1中的出现在s2中的字符全部删除,并在s1中返回

    * @param s1

    * @param s2

    * @return

    */

    char *rm(char *s1, char *s2) {

    int iLen1;

    int iLen2;

    int flag;

    int i, j, k;

    char *tmp;

    char ch;

    if ((s1 == NULL) || (s2 == NULL)) {

    //字符串有问题

    return s1;

    }

    iLen1 = strlen(s1);

    iLen2 = strlen(s2);

    //申请临时空间,注意最后要有\0,因此多申请一个

    tmp = (char*) malloc((iLen1 + 1) * sizeof (char));

    if (tmp == NULL) {

    //申请空间失败,没有办法处理了,只好返回NULL

    return NULL;

    }

    k = 0;

    for (i = 0; i < iLen1; i++) {

    ch = s1[i];

    flag = 0;

    for (j = 0; j < iLen2; j++) {

    if (s2[j] == ch) {

    //该字符在s2中出现,不做任何处理

    flag = 1;

    break;

    }

    }

    if (0 == flag) {

    //该字符没有出现在s2中,加入到临时空间中

    tmp[k] = ch;

    k++;

    }

    }

    //设置结束标志

    tmp[k] = '\0';

    strcpy(s1, tmp); //拷贝到目标传中

    free(tmp); //释放申请的临时空间

    return s1;

    }

    下面是数组的:

    /**

    * 将字符串s1中的出现在s2中的字符全部删除,并在s1中返回

    * @param s1

    * @param s2

    * @return

    */

    char *rm(char s1[], char s2[]) {

    int iLen1;

    int iLen2;

    int flag;

    int i, j, k;

    char ch;

    if ((s1 == NULL) || (s2 == NULL)) {

    //字符串有问题

    return s1;

    }

    iLen1 = strlen(s1);

    iLen2 = strlen(s2);

    k = 0;

    for (i = 0; i < iLen1; i++) {

    ch = s1[i];

    flag = 0;

    for (j = 0; j < iLen2; j++) {

    if (s2[j] == ch) {

    //该字符在s2中出现,不做任何处理

    flag = 1;

    break;

    }

    }

    if (0 == flag) {

    //该字符没有出现在s2中

    if (i != k) {

    //以前已经删除了一些字符,导致需要调整字符位置了

    s1[k] = ch;

    }

    k++;

    }

    }

    //设置结束标志

    s1[k] = 0;

    return s1;

    }。

    全部

    更多相关内容
  • C语言删除字符串指定字符

    万次阅读 多人点赞 2021-01-06 12:09:34
    输入一个字符串以及一个字符,删去字符串中相同字符 实现如下: #include<stdio.h> int main() { void del(char str[],char c);//声明函数del char str[80],c;//字符数组str以及要删除的字符c printf("请...

    输入一个字符串以及一个字符,删去字符串中相同字符
    实现如下:

    #include<stdio.h>
    int main()
    {
    	void del(char str[],char c);//声明函数del
    	char str[80],c;//字符数组str以及要删除的字符c
    	printf("请输入字符串:\n");
    	gets(str);
    	printf("请输入要删除的字符:\n");
    	scanf("%c",&c);
    	del(str,c);
    	printf("删除后:");
    	puts(str);
    	return 0;
    }
    void del(char str[],char c)
    {
    	int j=0;
    	for(int i=0;str[i]!='\0';i++)
    		if(str[i] != c)
    			str[j++]=str[i];//将字符串中与要删除字符不同的字符保留,相同字符则跳过
    	str[j]='\0';//在字符串末尾加上'\0'
    }
    
    展开全文
  • C语言删除指定字符

    千次阅读 2022-04-21 22:59:19
    本题要求实现一个删除字符串中的指定字符的简单函数。 一、裁判测试程序样例: #include <stdio.h> #define MAXN 20 void delchar( char *str, char c ); void ReadString( char s[] ); /* 由裁判实现,略去...


    题目

    本题要求实现一个删除字符串中的指定字符的简单函数。

    一、裁判测试程序样例:

    #include <stdio.h>
    #define MAXN 20
    
    void delchar( char *str, char c );
    void ReadString( char s[] ); /* 由裁判实现,略去不表 */
    
    int main()
    {
        char str[MAXN], c;
    
        scanf("%c\n", &c);
        ReadString(str);
        delchar(str, c);
        printf("%s\n", str);
        
        return 0;
    }
    
    /* 你的代码将被嵌在这里 */
    
    

    输入样例

    a
    happy new year
    
    

    输出样例

    hppy new yer
    
    

    二、学习思路与代码实现

    1.思路

    (1)首先创建一个字符数组和一个字符分别存储字符串和我们所要删除的指定字符。
    (2)输入我们要删除的字符和字符串(这里要注意

    (3)我们在裁判测试程序样例中可以看到,最后打印的还是str,即源字符串首元素地址,所以我们要在源字符串上完成删除指定字符。

    (4)知道指针和数组的关系,str[i]是指下标为i的元素,*str=str[0]

    (5)主要用i和j来实现,str[i]表示未删除指定字符的源字符串,str[j]表示删除指定字符后的字符串,注意这里的虽然用了i,j,但是依然是在同一个地址空间完成删除的,str[i]从首元素开始依次判断,如果不是我们要删除字符,就赋给str[j],直到str[i]指向’\0’,最后再把’\0’赋给str[j],作为字符串结束的标志
    (6)注意这个函数的返回值为空

    2.代码实现

    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>
    #include<string.h>
    #define MAXN 20
    void delchar(char* str, char c)
    {
    	int i=0;//str[i]表示原来的字符串
    	int j=0;//str[j]表示删除指定字符后的字符串
    	while (str[i] != '\0')
    	{
    		//刚开始指针指向原字符串的首元素地址
    		//当指针所指向的字符不是我们要删除的字符串时
    		//才能让str的空间地址,或者说str所指向的字符等于对应的字符
    		if (str[i] != c)
    		{
    			str[j++] = str[i];//str[j++]也是一直往后走的
    		}
    		//str[i]依次判断是否为要删除的指定字符,不是就赋给str[j]
    		i++;
    	}
    	//最后一步,将'\0'赋上
    	str[j] = str[i];
    }
    int main()
    {
    	char str[MAXN], c;
    	scanf("%c", &c);
    	//读取缓冲区的'\n'
    	getchar();
    	//之前谈过scanf读入字符串时,遇到空格或'\n'会直接结束
    	//所以字符串的读取最好用gets()
    	gets(str);
    	//删除指定字符的函数
    	delchar(str, c);
    	//str是删除指定字符后的字符串的首元素地址
    	printf("%s\n", str);
    
    	return 0;
    }
    
    展开全文
  • C语言实现去掉字符串指定的字符

    千次阅读 2021-09-07 13:54:07
    需求:将常量字符"2021-04-30"中的字符“-”去掉,函数返回int类型的20210430的日期。 实现: #define CHAR_LEN 10 int del(const char* str, char c, int len) { int j = 0; int i = 0; int ret = 0; char *...

    需求:将常量字符"2021-04-30"中的字符“-”去掉,函数返回int类型的20210430的日期。

    实现:

    #define CHAR_LEN 10
    int del(const char* str, char c, int len)
    {
    	int j = 0;
    	int i = 0;
    	int ret = 0;
    	char *temp = NULL;
    
    	temp = (char *)malloc(len + 1);
    	memcpy(temp, str, len + 1);
    	printf("temp is:%s\n", temp);
    
    	for (; temp[i] != '\0'; i++)
    		if(temp[i] != c)
    			temp[j++] = temp[i];
    	temp[j]='\0';
    
    	ret = atoi(temp);
    
    	free(temp);
    	return ret;
    }
    
    int main() {
    	
        char s[CHAR_LEN + 1] = "2021-04-30";
    	int date = del(s, '-', CHAR_LEN);
        printf("result is: <%d>", date);
       
    

    运行结果:
    temp is:2021-04-30
    result is: <20210430>

    展开全文
  • JAVA 删除字符串中指定的字符要CSS布局HTML小编今天和大家分享用到函数的调用。...输出:删除指定字符后的字符串。 二、设计思路:c语言中怎样写删除字符串中某个字符的程序啊?rt,各位大神帮帮...
  • C语言删除字符串指定字符的例子

    千次阅读 2021-05-19 07:54:44
    摘要 腾兴网为您分享:C语言删除字符串指定字符的例子,智宽生活,榛果民宿,远离手机,悟空单车等软件知识,以及光大期货软件,physxloader,军团战争,光环战争,gpsgate,大智慧手机炒股,广小二,淘货源,内存...
  • c语言(字符串)如何把字符串中某个指定的字符删除
  • void replace_string(char * source_str,char * targ_str,char *val)/*将字符串中指定子字符串用指定字符串代替,targ_str 是被替换的,val是替换的字符串*/{char temp_sstr[513],result[513];char * p,*q;int len;...
  • 删除字符串指定字符 C语言 程序设计实践
  • 删除指定字符串C语言

    千次阅读 2020-07-16 17:46:05
    删除指定字符串C语言)一、题目描述二、裁判测试程序样例三、输入\输出输入样例输出样例四、解题思路五、示例代码六、运行结果 一、题目描述 本题要求实现一个删除字符串中的指定字符的简单函数。 函数接口定义:...
  • 输入2个字符串S1和S2,要求删除字符串S1中出现的所有子串S2,即结果字符串中不能包含S2
  • 其实并不是真的删除了,而是将后面一位非指定字符覆盖到了他的位置。
  • C语言删除字符串中的指定字符

    万次阅读 多人点赞 2020-05-05 10:00:43
    只需要进行一次对目标字符串的遍历即可完成删除目标字符的功能,具体的代码如下所示: void delchar( char *str, char c ) { int i,j; for(i=j=0;str[i]!='\0';i++) { if(str[i]!=c)//判断是否有和待删除字符...
  • C语言程序设计-从字符串删除指定的字符;同一字母的大、小写 按不同字符处理; 例如:若程序执行时输入字符串为:turbocandborlandc++ 从键盘上输入字符:n,则输出后变为:turbocadbo rladc++,如果输入的字符在...
  • **删除字符串内的空格 */ #include<stdio.h> #include<string.h> //遍历元字符串删除空格 char *func(char *str) { int j = 0; for(int i=0;i<strlen(str);i++) { if(str[i] != ' ') { str...
  • C语言 字符串指针 删除特定字符
  • c语言指定位置删除字符串

    千次阅读 2021-01-23 14:14:02
    从一个字符串中的第p个位置起删除指定长度的字符串,输出最终结果,若输入不合法,则输出 Illegal input 输入 输入一个字符串s、位置p、长度n 输出 删除子串后的字符串 样例输入 copy adfasdf12 6 5 Made by hxl. ...
  • C语言字符串删除特定字符

    千次阅读 2021-06-26 20:30:19
    当出现特定字符的位置用一个新定义的字符串进行类似跳过特定字符的操作; 输入:s 输出:adlfjaljgowea #include #include void delSpace(char s[],char c); int main() { char str[80]="asdlfjaljgowesa"; char ch; ...
  • 将一串字符串中的*删除 题目:假定输入的字符串中只包含字母和*号,请编写函数fun,它的功能是: ​ 删除字符串中所有的*号。在编写函数时,不得使用C语言提供的字符串函数。 例如:字符串中的内容为ABCDEFG******...
  • 速度很快的哦,在windows 和 linux 下都经过测试了,可以放心使用,没有bug
  • C语言字符串删除某个子串

    千次阅读 2020-11-20 19:16:21
    编写函数删除一个字符串中的一部分,函数原型如下: int del_substr(char *str, char const *substr) 函数首先判断substr是否出现在str中,如果未出现,函数就返回0;如果出现,函数应该把str中位于该子串后面...
  • 删除字符串中,所有的指定的一个字符 #include <iostream> #include<unordered_map> using namespace std; void Squeeze(char s[], char c) { for (int i = 0; s[i]; i++) if (s[i] == c) { int...
  • C语言删除字符串指定的一串字符

    万次阅读 多人点赞 2019-01-27 21:38:32
     printf("删除指定字符串后的字符串是:");  puts(a); } [2]不用函数 #include #include void main() {  static char a[100],b[100],c[100];  int i,lena,lenb,k,t;  printf("请输入一个字符串\n"); ...
  • 1、 C语言字符串的理解 2、 掌握char类型函数使用 学习产出: #include <stdio.h> #include <cstring> #define MAXSIZE 100 typedef struct { char ch[MAXSIZE+1]; int length; } SString; int main...
  • #include <stdio.h> #include <string.h> #include <stdlib.h> #include <strings.h>...void delete_char(char str... printf("输入一个字符串:\n"); fgets(buf,sizeof(buf),stdin); print...
  • 怎么对c语言中文本文件进行删除特定的字符串,并且将删除后的文件重新保存在新的文本中
  • void delete_char(char str[], char target) { int i, j; //i表示每一个要遍历的元素,j表示下一次插入的位置 for(i=j=0; str[i]!='\0'; i++) { if(str[i] != target) str[j++] = str[i];...
  • 增添一个字符数组来保存遍历保留下来的字符,这样就能滤掉指定删除字符了,直接上代码 #include<stdio.h> #include<string.h> void delete(char s1[],char ch){ char s2[30]; int len=strlen(s1)...
  • C语言|删除字符串中的单词

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,016
精华内容 32,006
关键字:

c语言删除指定字符串

友情链接: 11111.rar