c替换字符串中的字符

2017-11-20 14:49:56 jazdbmin1639整理 js中如何替换字符串 js中如何替换字符串

c#替换字符串中见字符

Q1: C语言字符串替换

C语言实现字符串替换函数:
#include
#include
#include
#include
//字符串替换函数
/********************************************************************
*Function:my_strstr()
*Description: 在一个字符串中查找一个子串;
*Input:ps: 源;pd:子串
*Return :0:源字符串中没有子串; 1:源字符串中有子串;
*********************************************************************/
char * my_strstr(char * ps,char *pd)
{
char *pt = pd;
int c = 0;
while(*ps != '\0')
{
if(*ps == *pd)
{
while(*ps == *pd && *pd!='\0')
{
ps++;
pd++;
c++;
}
}else
{
ps++;
}
if(*pd == '\0')
{
return (ps - c);
}
c = 0;
pd = pt;
}
return 0;
}
/********************************************************************
*Function:memcpy()
*Description: 复制一个内存区域到另一个区域;
*Input:src: 源;
count: 复制字节数.
*Output:dest: 复制目的地;
*Return :dest;
*********************************************************************/
void * memcpy(void * dest,const void *src,size_t count)
{
char *tmp = (char *) dest, *s = (char *) src;
while (count--)
*tmp++ = *s++;
return dest;
}
/********************************************************************
*Function:str_replace()
*Description: 在一个字符串中查找一个子串,并且把所有符合的子串用
另一个替换字符串替换。
*Input:p_source:要查找的母字符串; p_seach要查找的子字符串;
p_repstr:替换的字符串;
*Output:p_result:存放结果;
*Return :返回替换成功的子串数量;
*Others:p_result要足够大的空间存放结果,所以输入参数都要以\0结束;
*********************************************************************/
int str_replace(char *p_result,char* p_source,char* p_seach,char *p_repstr)
{
int c = 0;
int repstr_leng = 0;
int searchstr_leng = 0;
char *p1;
char *presult = p_result;
char *psource = p_source;
char *prep = p_repstr;
char *pseach = p_seach;
int nLen = 0;
repstr_leng = strlen(prep);
searchstr_leng = strlen(pseach);
do{
p1 = my_strstr(psource,p_seach);
if (p1 == 0)
{
strcpy(presult,psource);
return c;
}
c++;//匹配子串计数加1;
printf("结果:%s\r\n",p_result);
printf("源字符:%s\r\n",p_source);
// 拷贝上一个替换点和下一个替换点中间的字符串
nLen = p1 - psource;
memcpy(presult, psource, nLen);
// 拷贝需要替换的字符串
memcpy(presult + nLen,p_repstr,repstr_leng);
psource = p1 + searchstr_leng;
presult = presult + nLen + repstr_leng;
}while(p1);
return c;
}
#define MAX 200
int main(void)
{
int i = 0;
char s[MAX] ={0};//存放源字串
char s1[MAX]={0};//存放子字串
char s2[MAX]={0};//存放替换字串
char result_a[2000] = {0};//存放替换结果;
char *p,*ptm,*pr;
puts("Please input the string for s:");
scanf("%s",s);
puts("Please input the string for s1:");
scanf("%s",s1);
puts("Please input the string for s2:");
scanf("%s",s2);
ptm = s;
pr = result_a;
i = str_replace(pr,ptm,s1,s2);
printf("替换%d个子字符串;\r\n",i);
printf("替换后结果:%s\r\n",result_a);
system("pause");
}

Q2: C语言文本文件中字符串的查找与替换。

/*
功能:查找替换函数
返回值:替换后的字符串 strretu

*/
char *Replace(char *str, char *str1, char *str2, char *strretu)
{
char *str_temp = str; //源字符串
char *str1_temp = str1; //要求替换的字符串
char *str2_temp = str2; //替换成字符串
char *strretu_temp = NULL;//目标字符串
unsigned long char_size = (unsigned long)sizeof(char);
/*计算字符长度*/
unsigned long i,j,rep_acc = 0;
unsigned long str_len = strlen(str);
unsigned long str1_len = strlen(str1);
unsigned long str2_len = strlen(str2);
/*首先找出Str里有几个地方要被替换的*/
for(; str_temp - str < str_len; )
{
for(i = 0; i < str1_len; i++)
{
if(*str_temp++ != *str1_temp++)
{
str1_temp = str1;
break;
}
else
{
if(i == str1_len - 1)
{
str1_temp = str1;
rep_acc++;//找到了
}
}
}
}
str1_temp = str1;
str_temp = str;
/*分配所需内存*/
strretu = strretu_temp = malloc(((str_len - str1_len * rep_acc) + str2_len * rep_acc + 1) * char_size);
/*替换*/
for(; str_temp - str < str_len; )
{
for(i = 0; i < str1_len; i++)
{
*strretu_temp++ = *str_temp;
if(*str_temp++ != *str1_temp++)
{
str1_temp = str1;
break;
}
else
{
if(i == str1_len - 1)
{
strretu_temp = strretu_temp - str1_len;
for(i = 0; i < str2_len; i++)
{
*strretu_temp++ = *str2_temp++;
}
str2_temp = str2;
str1_temp = str1;
}
}
}
}

*strretu_temp = '\0';
str1_temp = str1;
str_temp = str;
str2_temp = str2;
return(strretu);
}

Q3: c语言将字符串s中的子字符串s1全部替换为子字符串s2?

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"string.h"
intmain(void){
chars[300],s1[50],s2[60],tmp[300];
intls1,ls2,i,j;
printf("Inputstrings,s1,s2...\n");
scanf("%s%s%s",s,s1,s2);
ls1=strlen(s1);
ls2=strlen(s2);
for(j=i=0;s[i];i++){
if(strncmp(s+i,s1,ls1)==0){
strcpy(tmp+j,s2);
j+=ls2;
i+=ls1-1;
}
elsetmp[j++]=s[i];
}
tmp[j]='\0';
strcpy(s,tmp);
printf("%s\n",s);
return0;
}

小提示:内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。

js中如何替换字符串 推荐文章:
推荐不满意?点这里  ››  

js中如何替换字符串