C语言 字符串替换replace() 求加每句注释...........谢谢. ....没分了,有分了追加.... c语言 字符串替换函数

\u5728 C\u8bed\u8a00\u4e2d\u5b57\u7b26\u4e32\u7684\u66ff\u6362\u5982\u4f55\u5b9e\u73b0\u7684\uff01

1\u3001\u9996\u5148\u8f93\u5165\u4ee3\u7801\uff1a
#include
#include

/**
* \u53c2\u6570\uff1a
* originalString[] \uff1a\u539f\u59cb\u5b57\u7b26\u4e32
* key[] \uff1a \u5f85\u66ff\u6362\u7684\u5b57\u7b26\u4e32
* swap[] : \u65b0\u5b57\u7b26\u4e32
*/
void replace(char originalString[], char key[], char swap[]){
int lengthOfOriginalString, lengthOfKey, lengthOfSwap, i, j , flag;
char tmp[1000];


2\u3001\u7136\u540e\u8f93\u5165\uff1a
//\u83b7\u53d6\u5404\u4e2a\u5b57\u7b26\u4e32\u7684\u957f\u5ea6
lengthOfOriginalString = strlen(originalString);
lengthOfKey = strlen(key);
lengthOfSwap = strlen(swap);

for( i = 0; i <= lengthOfOriginalString - lengthOfKey; i++){
flag = 1;
//\u641c\u7d22key
for(j = 0; j < lengthOfKey; j ++){
if(originalString[i + j] != key[j]){
flag = 0;
break;
}
}

3\u3001\u7136\u540e\u8f93\u5165\uff1a
//\u5982\u679c\u641c\u7d22\u6210\u529f\uff0c\u5219\u8fdb\u884c\u66ff\u6362
if(flag){
strcpy(tmp, originalString);
strcpy(&tmp[i], swap);
strcpy(&tmp[i + lengthOfSwap], &originalString[i + lengthOfKey]);
strcpy(originalString, tmp);
i += lengthOfSwap - 1;
lengthOfOriginalString = strlen(originalString);
}
}
}

4\u3001\u7136\u540e\u8f93\u5165\uff1a
/**
* main function
*/
int main(){
char originalString[1000] = {"abcfffffabcfffffabcfffff"};
char key[] = {"abc"};
char swap[] = {"aabbcc"};
replace(originalString, key, swap);
printf("%s\n", originalString);
return 0;
}

5\u3001\u8fd9\u6837\u5c31\u5b8c\u6210\u4e86\u3002

\u3000\u3000\u66ff\u6362\u51fd\u6570\u4e3b\u8981\u6709strtr(),str_repalce()\u8fd9\u4e24\u4e2a\u51fd\u6570\u3002
\u3000\u3000\u9996\u5148\u9488\u5bf9strtr\u51fd\u6570\u7b2c\u4e00\u79cd\u65b9\u5f0f:
\u3000\u3000\u6211\u4eec\u770b\u770b\u4e0b\u9762\u7684\u4e3e\u4f8b:
\u3000\u3000<?php
echo strtr("I Love you","Lo","lO");
?>
\u3000\u3000\u5f97\u5230\u7684\u7ed3\u679c\u662f:
\u3000\u3000I lOve yOu
\u3000\u3000\u8fd9\u4e2a\u7ed3\u679c\u63d0\u9192\u6211\u4eec\uff1a
\u3000\u30001.strtr\u5b83\u662f\u533a\u5206\u5927\u5c0f\u5199\u7684
\u3000\u30002.strtr\u7684\u66ff\u6362\u662f\u5f88\u7279\u6b8a\u7684\uff0c\u4f60\u6ce8\u610f\u770b\u540e\u9762\u90a3\u4e2ayOu\uff0c\u4e2d\u95f4\u7684O\u88ab\u66ff\u6362\u7684\uff0c\u8fd9\u663e\u7136\u4e0d\u662f\u6211\u4eec\u7684\u672c\u610f\u3002
\u518d\u4e3e\u4e00\u4e2a\u7279\u6b8a\u4f8b\u5b50\uff0c\u8bf4\u660e\u8fd9\u4e2aphp\u7684sttr\u51fd\u6570\u7684\u602a\u5f02
\u3000\u3000<?php
echo strtr("I Love you","Love","");
?>
\u3000\u3000\u7ed3\u679c\u662f\uff1a
\u3000\u3000I Love you
\u3000\u3000\u4ec0\u4e48\u4e5f\u4e0d\u4f1a\u6539\u53d8\uff0c\u6240\u4ee5strtr\u9700\u8981\u6ce8\u610f\u7684\u662f:
\u3000\u30003.\u4e0d\u80fd\u88ab\u66ff\u6362\u4e3a\u7a7a\uff0c\u4e5f\u5c31\u662f\u672b\u4f4d\u90a3\u4e2a\u53c2\u6570\u4e0d\u80fd\u662f\u7a7a\u5b57\u7b26\u4e32\uff0c\u5f53\u7136\u7a7a\u683c\u662f\u53ef\u4ee5\u7684\u3002
\u3000\u3000\u518d\u6b21\u4e3e\u4f8bstrtr\u51fd\u6570\u7684\u53e6\u4e00\u79cd\u60c5\u51b5\uff1a
\u3000\u3000<?php
echo strtr("I Loves you","Love","lOvEA");
?>
\u3000\u3000\u7ed3\u679c\u662f\uff1a
\u3000\u3000I lOvEs yOu
\u3000\u3000\u6ce8\u610f\u770b\u7b2c\u4e09\u4e2a\u53c2\u6570\u7684A\uff0c\u5728\u7ed3\u679c\u4e2d\u5e76\u6ca1\u6709\u51fa\u73b0\u3002
\u3000\u30004.\u6211\u4e0d\u5efa\u8bae\u7528strtr\u4ee5\u5c11\u6362\u591a\u3002
\u3000\u3000ok\uff0c\u65e2\u7136\u8fd9\u4e2astrtr\u51fd\u6570\u633a\u9ebb\u70e6\u4e3a\u4ec0\u4e48\u8fd8\u8981\u7528\u5462\uff1f
\u3000\u3000\u539f\u56e0\u662f\uff0c\u5b83\u7684\u901f\u5ea6\u5f88\u5feb\u3002\u636e\u8bf4\uff0cstrtr \u6bd4 str_replace \u5feb\u56db\u500d\u3002
\u3000\u30005.\u80fd\u7528strtr\u51fd\u6570\u7684\u65f6\u5019\u4e00\u5b9a\u8981\u7528\u3002
\u3000\u3000\u7b2c\u4e8c\u79cd\u60c5\u51b5\uff1a
\u3000\u3000strtr(string,array)
\u3000\u30006.strtr\u7b26\u5408\u610f\u613f\u7684\u4f7f\u7528\u65b9\u6cd5
\u3000\u3000<?php
$table_change = array('you'=>'her sister');
echo strtr("I Love you",$table_change);
?>
\u3000\u3000\u7ed3\u679c\u4e3a:
\u3000\u3000I Love her sister
\u3000\u30007.\u5c0f\u6280\u5de7\uff1a\u4f60\u60f3\u5230\u66ff\u6362\u4ec0\u4e48\u4f60\u5c31\u5f80\u6570\u7ec4\u52a0\u4ec0\u4e48
\u3000\u3000\u6bd4\u5982:
\u3000\u3000<?php
$table_change = array('you'=>'her sister');
$table_change += array('Love' => 'hate');
echo strtr("I Love you",$table_change);
?>
\u3000\u3000\u7ed3\u679c\u662f:
\u3000\u3000I hate her sister
\u3000\u3000\u518d\u6b21\u63d0\u9192\u90a3\u4e2aLove \u5199\u6210love \u662f\u884c\u4e0d\u901a\u7684\u54e6\u3002
\u3000\u3000\u5b57\u7b26\u4e32\u53d6\u4ee3\u3002
\u3000\u3000\u8bed\u6cd5: string str_replace(string needle, string str, string haystack);
\u3000\u3000\u8fd4\u56de\u503c: \u5b57\u7b26\u4e32
\u3000\u3000\u51fd\u6570\u79cd\u7c7b: \u8d44\u6599\u5904\u7406
\u3000\u3000\u5185\u5bb9\u8bf4\u660e
\u3000\u3000\u672c\u51fd\u6570\u5c06\u5b57\u7b26\u4e32 str \u4ee3\u5165 haystack \u5b57\u7b26\u4e32\u4e2d\uff0c\u5c06\u6240\u6709\u7684 needle \u7f6e\u6362\u6210 str\u3002

\u4e0b\u4f8b\u5c06 %body% \u4ee5 black \u53d6\u4ee3
\u3000\u3000<?php
$bodytag = str_replace("%body%", "black", "");
echo $bodytag;
?>
\u3000\u3000\u683c\u5f0f\uff1a
\u3000\u3000[@str_replace("\u8981\u66ff\u6362\u7684\u65e7\u5185\u5bb9", "\u8981\u53d6\u4ee3\u539f\u5185\u5bb9\u7684\u65b0\u5b57\u7b26", $\u88ab\u66ff\u6362\u5185\u5bb9\u7684\u53d8\u91cf\u540d)]
[@str_replace(array('\u65e71','\u65e72','\u65e73'), array('\u65b01','\u65b02','\u65b03'), $\u88ab\u66ff\u6362\u5185\u5bb9\u7684\u53d8\u91cf\u540d)]
[@str_replace(array('\u65e71','\u65e72','\u65e73'), '\u65b0\u5185\u5bb9', $\u88ab\u66ff\u6362\u5185\u5bb9\u7684\u53d8\u91cf\u540d)]

\u3000\u3000\u5b9e\u4f8b\uff1a
\u3000\u3000\u591a\u5bf9\u4e00\u66ff\u6362\uff1a\u60f3\u628a\u5185\u5bb9\u5b57\u6bb5\u91cc\u6240\u6709\u7684
\u6807\u7b7e\u6e05\u9664\u6389,\u66ff\u6362\u6210\u7a7a [@str_replace(array('
','
'), '', $Content)]
\u3000\u3000\u4e00\u5bf9\u4e00\u66ff\u6362\uff1a\u60f3\u628a\u5185\u5bb9\u5b57\u6bb5\u91cc\u6240\u6709\u7684\u6807\u7b7e\u6362\u6210
[@str_replace('', '', $Content)]
\u3000\u3000\u591a\u5bf9\u591a\u66ff\u6362\uff1a\u60f3\u628a\u5185\u5bb9\u5b57\u6bb5\u91cc\u7684\u6362\u6210
, \u540c\u65f6\u6362\uff0c\u628a
\u5168\u6e05\u9664 [@str_replace(array('', '
',''), array('
','',''), $Content)]
\u3000\u3000\u3000\u3000

#include<stdio.h>
#include<string.h>
#include <stdlib.h>
//参数,src 字符串源,sub想要替换的字符串,dst,用来替换的字符串
char*replace(char*src, char*sub, char*dst)
{
//记录当前指针位置
int pos =0;
//记录偏移

int offset =0;
//字符串长度
int srcLen, subLen, dstLen;
//返回内容

char*pRet = NULL;

//求得各字符串长度

srcLen = strlen(src);
subLen = strlen(sub);
dstLen = strlen(dst);
//申请替换后的字符串缓冲区。用dst替换sub,所以应该是srclen-sublen+dstlen,+1流出'\0'位置
pRet = (char*)malloc(srcLen + dstLen - subLen +1);//(外部是否该空间)if (NULL != pRet)
{
//strstr查找sub字符串出现的指针。该指针减去src地址。得到相对位置
pos = strstr(src, sub) - src;
//拷贝src字符串,从首地址开始,pos个字符。
memcpy(pRet, src, pos);
//增加偏移位置到pos
offset += pos;
//拷贝dst到返回内容中。
memcpy(pRet + offset, dst, dstLen);
//重新定位偏移
offset += dstLen;
//拷贝src中,sub字符串后面的字符串到pRet中
memcpy(pRet + offset, src + pos + subLen, srcLen - pos - subLen);
//重新定位偏移
offset += srcLen - pos - subLen;
//最后添加字符串结尾标记'\0'
*(pRet + offset) ='\0';
}
//返回新构造的字符串
return pRet;
}

扩展阅读:c语言字符长度怎么看 ... c语言 字符串拼接 ... c#语言翻译器 ... c语言字母a和z转换 ... 中英文自动翻译器 ... c语言 字符串截取 ... c语言字符串查找替换 ... 字符串长度怎么自己数 ... 字符串字母大小写转换 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网