精华内容
下载资源
问答
  • C语言 16行代码实现字符串中指定字符串替换

    万次阅读 多人点赞 2018-08-03 17:05:35
    支持: 1.等长字符串替换 2.长字符串替换为短字符串 3.短字符串替换为长字符串 4.中文替换 .../* 功 能:将str字符串中的oldstr字符串替换为newstr字符串 * 参 数:str:操作目标 oldstr:被替换者...

    推荐文章

    Qt开发一款免费开源功能完整的串口调试、Tcp、Udp调试工具


    支持:


    1.等长字符串替换

    2.长字符串替换为短字符串

    3.短字符串替换为长字符串

    4.中文替换

    注意:短字符串替换成长字符串要注意内存越界

    其他字符串函数https://mp.csdn.net/postedit/82996174

    函数代码

    /* 功  能:将str字符串中的oldstr字符串替换为newstr字符串
     * 参  数:str:操作目标 oldstr:被替换者 newstr:替换者
     * 返回值:返回替换之后的字符串
     * 版  本: V0.2
     */
    char *strrpc(char *str,char *oldstr,char *newstr){
        char bstr[strlen(str)];//转换缓冲区
        memset(bstr,0,sizeof(bstr));
     
        for(int i = 0;i < strlen(str);i++){
            if(!strncmp(str+i,oldstr,strlen(oldstr))){//查找目标字符串
                strcat(bstr,newstr);
                i += strlen(oldstr) - 1;
            }else{
            	strncat(bstr,str + i,1);//保存一字节进缓冲区
    	    }
        }
    
        strcpy(str,bstr);
        return str;
    } 

    测试代码


    #include <stdio.h>
    #include <string.h>
    
    
    /* 功  能:将str字符串中的oldstr字符串替换为newstr字符串
     * 参  数:str:操作目标 oldstr:被替换者 newstr:替换者
     * 返回值:返回替换之后的字符串
     * 版  本: V0.2
     */
    char *strrpc(char *str,char *oldstr,char *newstr){
        char bstr[strlen(str)];//转换缓冲区
        memset(bstr,0,sizeof(bstr));
     
        for(int i = 0;i < strlen(str);i++){
            if(!strncmp(str+i,oldstr,strlen(oldstr))){//查找目标字符串
                strcat(bstr,newstr);
                i += strlen(oldstr) - 1;
            }else{
            	strncat(bstr,str + i,1);//保存一字节进缓冲区
    	    }
        }
     
        strcpy(str,bstr);
        return str;
    }
    
    int main(void)
    {
    	char str[] = "Hello,中国!\n"; 
    	strrpc(str,"中国","世界");
    	printf("%s",str);
    	strrpc(str,"Hello","你好");
    	printf("%s",str);
    	strrpc(str,"你好,世界","Hello,world");
    	printf("%s",str);
    	return 0;
    }
    

    搜这个的人还挺多,大家还需要什么别的函数,欢迎在下方留言^-^。

    展开全文
  • void replace_string(char * source_str,char * targ_str,char *val)/*将字符串中指定子字符串用指定字符串代替,targ_str 是被替换的,val是替换的字符串*/{char temp_sstr[513],result[513];char * p,*q;int len;...

    void replace_string(char * source_str,char * targ_str,char *val)/*将字符串中指定子字符串用指定字符串代替,targ_str 是被替换的,val是替换的字符串*/

    {

    char temp_sstr[513],result[513];

    char * p,*q;

    int len;len=0;q=p=NULL;

    memset(result,0,sizeof(result));

    memset(temp_sstr,0,sizeof(temp_sstr));

    strcpy(temp_sstr,source_str);

    p=q=temp_sstr;

    len=strlen(targ_str);

    while(q!=NULL)

    {

    if((q=strstr(p,targ_str))!=NULL)

    {

    strncat(result,p,q-p);

    strcat(result,val);

    strcat(result,"\0");

    q+=len;

    p=q;

    }

    else

    strcat(result,p);

    }

    strcpy(source_str,result);

    }

    调用:

    int main()

    {

    char s[123];

    strcpy(s, "cert: \\n");

    printf("%s\n", s);

    replace_string(s, "\\n","\n");

    printf("%s\n", s);

    return 0;

    }

    展开全文
  • 前言 当前程序是在linux环境下执行的 代码 #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&...int replace_all(char* str, size_t strLen, const char* d, const char...

    前言

    当前程序是在linux环境下执行的

    代码

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    
    #define MAX_UTF8_RES_LEN 1024
    
    int replace_all(char* str, size_t strLen, const char* d, const char* s)
    {
        char* pos = 0;
        char* prv = 0;
        char temp[MAX_UTF8_RES_LEN];
        memset(temp, 0, MAX_UTF8_RES_LEN);
        if(str == NULL || d == NULL || s == NULL)
        {
            printf("Init error\n");
        }
        *temp = 0;
        prv = str;
        pos = strstr(str, d);
        while (pos) {
            strncat(temp, prv, pos - prv);
            pos += strlen(d);
            prv = pos;
            pos = strstr(prv, d);
            strncat(temp, s, MAX_UTF8_RES_LEN - 1 - strlen(temp));
        }
        if (prv != str + strlen(str)) {
            strncat(temp, prv, MAX_UTF8_RES_LEN - 1 - strlen(temp));
        }
        if (strlen(temp) > strLen) {
            printf("Overflow!\n");
            return -1;
        }
        strncpy(str, temp, MAX_UTF8_RES_LEN - 1);
        str[MAX_UTF8_RES_LEN - 1] = '\0';
        return 0;
    }
    
    int
    main(int argc, char* argv[])
    {
        char * line = NULL;
        size_t len = 0;
        ssize_t read_len;
        while ((read_len=getline(&line, &len, stdin)) != -1) 
        {
            if (read_len > 0 && line[read_len-1] == '\n')
            { 
                line[read_len-1] = '\0';
                read_len -= 1;  
            }
            int b = replace_all(line, MAX_UTF8_RES_LEN, "888", "999");
            printf("b is %d\n", b);
            printf("new is %s\n", line);
        }
        return 0;
    }

    编译

    gcc demo.cc -g -o demo

    运行

    echo "hello 888 asdfa 888888fa889sdfa" | ./demo 

    结果

    b is 0
    new is hello 999 asdfa 999999fa889sdfa
    展开全文
  • 最近在写代码的时候,因为工作需要从一个较长的字符串中...首先我们需要自己写两个函数,一个提取指定字符串函数,一个替换字符串函数,下面代码中substr是替换函数,strrep是提取函数。 下面直接给大家上代码 #includ

    最近在写代码的时候,因为工作需要从一个较长的字符串中提取出一小段字符串,然后将新字符串填到提取出来字符串的位置,就像这样子,将str1中的yyyyy提取出来然后将str2填到str1中变成str3。
    str1 = “xxxxyyyyyzzzzzdddd”;
    str2 = “bbbb”;
    str3 = “xxxxbbbbzzzzzdddd”;

    首先我们需要自己写两个函数,一个提取指定字符串函数,一个替换字符串函数,下面代码中substr是替换函数,strrep是提取函数。
    下面直接给大家上代码

    #include <stdio.h>
    #include <string.h>
    int substr(char dst[], char src[],int start, int len)
    {
        int i;
        for(i=0;i<len;i++)
        {
            dst[i]=src[start+i]; 
        }
            dst[i]='\0';
            return i;
    }
    
    static char *strrep(char *str, char *src, char *dest)
    {
        char bstr[strlen(str)];
        memset(bstr, 0, sizeof(bstr));
     
    	for(int i = 0; i < strlen(str); i++){
        if(!strncmp(str+i, src, strlen(src))){
            strcat(bstr, dest);
            i += strlen(src) - 1;
        }else{
         strncat(bstr, str + i, 1);
     }
    }
    
    strcpy(str, bstr);
    return str;
    }
    
    int main()
    {
        char dst[50];              
        char src[]="ws://173.36.158.27:8090/haha/ws/xixi";
        char str[]="//188.16.3.1";
    	char *p,*q;
    	int len1,len2,len;
    	len = strlen(src);
    	printf("%d\n",len);
    	
    	p = strchr(src, ':');
    	len1 = strlen(p);
    	printf("%d\n",len1);
    	
    	q = strrchr(src,':');
    	len2 = strlen(q);
    	printf("%d\n",len2);
        int m;
        m=substr(dst,src,len - len1,len1-len2);  
        printf("%s\n",dst);
        printf("%d\n",m);
        strrep(src, dst, str);
        printf("%s\n",src);
    	
        return 0;
    }
    
    展开全文
  • 中文替换spa注意:短字符串替换成长字符串要注意内存越界.net函数代码/* 功 能:将str字符串中的oldstr字符串替换为newstr字符串* 参 数:str:操做目标 oldstr:被替换者 newstr:替换者* 返回值:返回替换以后的...
  • C语言指针实现字符串替换 好久没碰字符串指针,遇到了很多小的,有意思的问题。 题目 编写一个函数,函数原型为char * ReplaceString(char * str, char * s1, char * s2),该函数使用s2替换str中的s1,函数返回替换...
  • c语言替换字符串中的子串

    千次阅读 2017-12-05 12:52:37
    c语言替换字符串中的子串 #include #include int checkStr(char *s1, char *s2) //匹配字符串相不相等 {  for (int i = 0; i  {  if (s1[i] != s2[i]) return 0;  }  return 1; } void ...
  • C语言实现字符串替换固定字符串 static void strreplece(char *str, const char *oldstr, const char *newstr) { char s_str[strlen(str)]; memset(s_str, 0, sizeof(s_str)); for(int i=0; i<strlen...
  • C语言小程序,统计字符串中字符出现频率,随后可以输入指定字符,来和原字符进行匹配,随后可以输入要替换的字符,即可完成替换
  • /*功能:将str字符串中的oldstr字符串替换为newstr字符串*参数:str:操作目标oldstr:被替换者newstr:替换者*返回值:返回替换之后的字符串*版本:V0.2*/char*strrpc(char*str,char*oldstr,char*newstr){char bstr...
  • [C语言]字符串处理 - 用指定字符串替换要查找的字符串(支持中文字符)2008-11-08: 函数StringReplace(用指定字符串替换要查找的字符串),主要在realloc上费了些时间,因为realloc重新分配内存空间后,地址也发生了...
  • 字符串中的空格替换为"%20"的字符串。 思路: while(字符串未到末尾\0) { if(此处字符为空格) { 子函数:删除空格符; 子函数:字符串向后挪动可以插入数组的空间; 子函数:将目标数组插入到字符数组的前...
  • C语言实现字符串替换

    万次阅读 多人点赞 2019-03-08 17:35:48
    关键点: 1.注意字符数组与字符串的区别;在字符数组最后一个字符后面...描述:第一行输入原字符串,第二行输入要替换字符串, 第三行输入新的字符串 输入示例: There is an orange, do you want to eat it?...
  • void str_str_replace(char s1[],char a[],char b[]) //字符串s1中的a 替换成b { int s1_len=strlen(s1); //计算三者长度 int a_len=strlen(a); int b_len=strlen(b); //找出a[] int i=0; //i用来指定s1下标 ...
  • 给定一个不超过80个全部由大写字母构成的字符串,要求把里面所有“ZH",替换为“#$”后输出。 第一行是一个整数n, 然后是n行不超过80长度的字符串。 输出替换后的字符串。 如: 2 AABDAED ZZHASSZHDZ 替换后为: ...
  • C语言中的字符串

    2015-08-17 07:43:15
    C语言利用字符串常量和字符串变量来便捷地处理字符串
  • C语言删除字符串中的指定字符串

    千次阅读 2014-12-18 11:37:02
    void replace_string(char * source_str,char * targ_str,char *val)/*将字符串中指定子字符串用指定字符串代替,targ_str 是被替换的,val是替换的字符串*/ { char temp_sstr[513],result[513]; char * p,*q; ...
  • C语言中,数组属于构造数据结构。一个数组可以分解成多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按照数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。 ...
  • *在有效的字符串内,用新字符串替换指定字符串,仅执行一次替换操作 *str: 待替换的字符串源 *oldstr: 被替换的字符串 *newstr: 用于替换的新字符串 *result: 参数输出执行替换后的结果(可用该函数返回值,也可用...
  • 字符串之替换字符串中连续出现的指定字符串 给定3个字符串str from to已知from字符串无重复字符,把str中所有from的子串全都替换成to字符串,连续出现from只需要换成一个to就可。 例如: str="123adc" from = "adc...
  • 转自:http://www.pinlue.com/article/2020/05/1300/1210510260005.html
  • C语言实现:替换字符串指定字符

    万次阅读 2011-07-29 14:24:56
    int   ReplaceStr ( char *  sSrc,  char *  sMatchStr,  char *  sReplaceStr) {   int  StringLen;   char  caNewString[ 64 ];   char *  FindPos; ...//把字符串中的“-”删除掉!
  • 转自:http://www.pinlue.com/article/2020/05/1300/1210510260005.html

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 52,582
精华内容 21,032
关键字:

c语言替换指定字符串

c语言 订阅