| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1465 人关注过本帖
标题:字符串替换处理 。各位大神进来看一下,帮忙解决一下。
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 7楼 吹水佬
我都有考虑用strtok,不过没想到strtok还可以跟字符串,我以前还以为只能跟单个字符,学习了

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-15 14:39
阿联酋
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-11-22
收藏
得分:0 
回复 4楼 九转星河
这用户定义函数是什么和函数原形又是什么
2016-12-15 15:27
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 12楼 阿联酋
一个是仿照strlen的一个是仿照strstr的~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-12-15 15:41
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10560
专家分:42996
注 册:2014-5-20
收藏
得分:0 
回复 13楼 九转星河

感觉strstr好用点

/*
    在s1中搜索s2并用s3替换每次出现的s2
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *strtran(char *s1, char *s2, char *s3)
{
    if (!*s1 || !*s2 || !*s3)
        return s1;
    int len1=strlen(s1);
    int len2=strlen(s2);
    int len3=strlen(s3);
    if (len1 < len2)
        return s1;
    int len, bufsize=1;
    char *buf=(char*)calloc(bufsize, sizeof(char));
    char *p1=s1, *p2;
    for (p2=strstr(s1,s2); p2; p2=strstr(p2,s2))
    {
        len = p2 - p1;
        buf = (char*)realloc(buf, (bufsize+len+len3)*sizeof(char));
        strncpy(buf+bufsize-1, p1, len);
        strcpy(buf+bufsize+len-1, s3);
        bufsize += len + len3;
        p2 += len2;
        p1 = p2;
    }
    len = strlen(p1);
    buf = (char*)realloc(buf, (bufsize+len)*sizeof(char));
    strcpy(buf+bufsize-1, p1);
    return buf;
}

main()
{
    char s1[256], s2[256], s3[256];
    while (1)
    {
        printf("s1: ");
        gets(s1);
        printf("s2: ");
        gets(s2);
        printf("s3: ");
        gets(s3);
        if (!*s1 || !*s2 || !*s3)
            break;
        char *s = strtran(s1, s2, s3);
        puts(s);
        free(s);
    }
}
2016-12-15 20:35
阿联酋
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2016-11-22
收藏
得分:0 
回复 8楼 阿联酋
不用了,谢谢你了
2016-12-16 09:15
快速回复:字符串替换处理 。各位大神进来看一下,帮忙解决一下。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021056 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved