C字符串替换

参数说明:  in 源字符串  、out 存放最后结果的字符串  、outlen out最大的大小  、src 要替换的字符串  、dst 替换成什么字符串

char *strrpl(char *in, char *out, int outlen, const char *src, char *dst)  
{  
	char *p = in;  
	unsigned int  len = outlen - 1;  

	// 这几段检查参数合法性  
	if((NULL == src) || (NULL == dst) || (NULL == in) || (NULL == out))  
	{  
		return NULL;  
	}  
	if((strcmp(in, "") == 0) || (strcmp(src, "") == 0))  
	{  
		return NULL;  
	}  
	if(outlen <= 0)  
	{  
		return NULL;  
	}  

	while((*p != '\0') && (len > 0))  
	{  
		if(strncmp(p, src, strlen(src)) != 0)  
		{  
			int n = strlen(out);  

			out[n] = *p;  
			out[n + 1] = '\0';  

			p++;  
			len--;  
		}  
		else  
		{  
			strcat_s(out, outlen, dst);  
			p += strlen(src);  
			len -= strlen(dst);  
		}  
	}  
	return out;  
}  

猜你喜欢

转载自blog.csdn.net/m0_38032942/article/details/80769975