#include<stdio.h>
#include<string.h>
char* ReplaceSubStr(const char* str, const char* srcSubStr, const char* dstSubStr, char* out)
{
if (!str&&!out)
{
return NULL;
}
if (!srcSubStr && !dstSubStr)
{
return out;
}
char *out_temp = out;
int src_len = strlen(srcSubStr);
int dst_len = strlen(dstSubStr);
while (*str!='\0')
{
if (*str == *srcSubStr)
{
//可能发生替换
const char* str_temp = str;
int flag = 0;
for (int i = 0; i < src_len; i++)
{
if (str_temp[i]!=srcSubStr[i])
{
flag = 1;
break;
}
}
if (flag)
{
//说明不用替换
*out_temp++ = *str++;
}
else
{
//说明要替换
for (int i = 0; i < dst_len; i++)
{
*out_temp++ = dstSubStr[i];
}
str = str + src_len;
}
}
else
{
//不用替换
*out_temp++ = *str++;
}
}
*out_temp = 0;
return out;
}
int main()
{
char str[1024];
char src[1024];
char dst[1024];
char out[1024];
//输入字符串
gets_s(str);
gets_s(src);
gets_s(dst);
ReplaceSubStr(str, src, dst, out);
printf("%s\n", out);
return 0;
}
C语言替换字符串中的子串
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程...
- 替换第一个 这段代码相当于用原生 JavaScript 实现"abcdgbcjh0".replace("bc", ...