`

str_replace的c语言实现

阅读更多
//./str_replace_all "(uid=%u/%u)" "%u" chantra
char *str_replace(const char *string, const char *substr, const char *replacement )
{
	char *tok    = NULL;
	char *newstr = NULL;
	char *oldstr = NULL;
	
	/* if either substr or replacement is NULL, duplicate string a let caller handle it */
	if ( substr == NULL || replacement == NULL ) 
		return strdup (string);
	
	newstr = strdup (string);
	while ( (tok = strstr( newstr, substr)))
	{
		oldstr = newstr;
		newstr = malloc (strlen ( oldstr ) - strlen ( substr ) + strlen ( replacement ) + 1 );
		/*failed to alloc mem, free old string and return NULL */
		if (newstr == NULL)
		{
			free (oldstr);
			return NULL;
		}
		memcpy ( newstr, oldstr, tok - oldstr );
		memcpy ( newstr + (tok - oldstr), replacement, strlen ( replacement ) );
		memcpy ( newstr + (tok - oldstr) + strlen( replacement ), tok + strlen ( substr ), strlen ( oldstr ) - strlen ( substr ) - ( tok - oldstr ) );
		memset ( newstr + strlen ( oldstr ) - strlen ( substr ) + strlen ( replacement ) , 0, 1 );
		
		free(oldstr);
	}

	return newstr;
}
分享到:
评论

相关推荐

    字符串替换函数基于C语言实现可运行于Linux

    本文将深入探讨如何在Linux环境中使用C语言实现一个字符串替换函数。首先,我们需要理解C语言中的字符串基础知识,然后我们将讨论如何创建这个实用的字符串替换功能,并通过makefile文件进行编译。 在C语言中,字符...

    C语言实现String字符串及其函数stringUtil

    本项目名为"C语言实现String字符串及其函数stringUtil",主要关注的是如何在C语言环境中自定义处理字符串的函数,以扩展标准库中提供的功能。通过分析`stringUtil.c`源代码和`stringUtil.h`头文件,我们可以了解一些...

    C实现Replace替换函数

    在C语言中,实现一个`Replace`替换函数是一项基本任务,它可以帮助我们处理字符串,将字符串中的特定子串替换为另一个新的子串。这个功能在许多编程场景中都非常有用,例如文本处理、日志分析等。下面我们将深入探讨...

    C语言操作JSON

    C语言,作为基础的编程语言,虽然没有内置的JSON处理库,但可以通过第三方库来实现JSON的操作。本篇文章将深入探讨如何在Linux环境下使用C语言进行JSON的解析、创建和操作。 首先,我们需要一个C语言的JSON库。一个...

    C replace 函数

    在C语言中,标准库并没有提供直接用于字符串替换的函数,但我们可以自定义函数来实现这一功能。这里我们将深入探讨如何使用C语言编写一个字符串替换函数,以及涉及到的相关知识点。 首先,我们需要理解C语言中的...

    C语言字符串处理函数扩展

    1. **子串截取**:C语言标准库没有提供直接的子串截取函数,但可以通过`strncpy`或`strcpy`配合索引来实现。例如,我们可以编写一个`substring`函数,接受字符串、起始位置和长度作为参数,返回一个新的字符串,这个...

    linux 下c写的字符串替换

    本文将深入探讨如何在Linux下使用C语言实现字符串替换的功能。 首先,我们需要理解C语言中的字符串。在C语言中,字符串是由字符数组表示的,通常以空字符'\0'作为结束标志。当我们谈论字符串替换时,实际上是在一个...

    字符串中子串的查找与替换C语言描述

    本文将深入探讨如何在C语言中实现字符串子串的查找与替换。 首先,我们要了解C语言中的字符串实际上是以空字符'\0'作为结束标识的字符数组。常用的字符串处理函数库是`<string.h>`,它包含了如`strcpy`(复制字符串...

    用 替换字符串空格(C语言)

    在本文中,我们将深入探讨如何使用C语言来实现这个功能,并讨论相关的时间复杂度。 首先,我们需要理解C语言中字符串的概念。在C语言中,字符串是由字符组成的数组,通常以空字符'\0'作为结束标志。因此,当我们说...

    jsj_Php_教程.pdf

    - `str_replace()`和`str_ireplace()`用于在字符串中替换子串。 - `str_split()`将字符串拆分为字符数组。 - `str_word_count()`计算字符串中的单词数量。 在处理字符串时,还有一些其他功能,如`levenshtein()`...

    C语言 字符串处理 统计,查找,替换,反转,比较

    replace_substring函数的原型为char *replace_substring(char *str, char *substr, char *new_substr),它将字符串str中的子字符串substr替换为新字符串new_substr。 三、字符串的反转 在C语言中,字符串的反转是...

    纯C语言代码敏感词过滤.doc

    该文档主要介绍了一个纯C语言实现的敏感词过滤系统,其中包含了两个关键函数:`replaceFirst` 和 `replace`,以及一个设置敏感词的辅助函数 `set_sensitive_vocabulary`。整个系统通过读取一个名为 "sensitive.txt" ...

    字符串子串替换函数

    int replace_str(const char * src, const char * key_src, const char * key, char ** buf); int replace_count(const char * src, const char * key_src, int * n); int main() { char * str = "a 123 b 156 LL a...

    字符串替换(C语言 + C#)

    总结一下,C语言通过自定义函数实现字符串替换,而C#则提供内置的`Replace()` 方法。在华为等企业的严格要求下,开发者需要理解并遵循编码规范,利用各种工具进行代码质量检查,以保证软件的高效和安全。在处理字符...

    使用KMP实现文本查找与替换

    ### 使用KMP算法实现文本查找与替换 #### KMP算法简介 KMP(Knuth-Morris-Pratt)算法是一种高效的字符串匹配算法,由Donald Knuth、James H. Morris和Vaughan Pratt共同提出。相较于朴素的字符串匹配方法,KMP算法...

    c语言中的string详解

    - **替换**:`myString.replace(pos, oldLen, "new text");` - **查找**:`size_t pos = myString.find("world");` - **比较**:`bool isEqual = (myString == "Hello, world!");` #### 五、结论 通过对C语言中的...

    PHP.rar_it

    例如,`strlen()`用于计算字符串长度,`str_replace()`用于替换字符串中的指定字符,`explode()`用于将字符串分割成数组。 ```php $text = "Hello, World!"; echo strlen($text); // 输出13 $replaced = str_...

    严蔚敏数据结构c语言版习题集答案串.pdf

    第四章串4.14中,Status NiBoLan_to_BoLan(Stringtype str, Stringtype &new)函数实现了把前缀表达式str转换为后缀式new。该函数使用了Initstack和push函数来实现前缀表达式的转换。 本资源提供了数据结构相关的...

    php笔记-欢迎增加

    - 处理多余字符:`function str_rep($str) { $str = str_replace('<tdheight="85" class="t_4">', '', $str); ... }` #### 四、编码转换 - **目的**:确保数据在不同环境下的正确显示和处理。 - **类型**: - **...

Global site tag (gtag.js) - Google Analytics