C语音 字符串替换处理,求大神给个答案

给定三个字符串,查找第一个字符串是否包含第二个字符串,如果包含,则将第三个字符串替换第二个字符串(第一个字符串可能多次包含第二个字符串); 例如:对于字符串“abcabcdefghij”、“fgh”、“sk”,则程序输出“abcabcdeskij”。

提示:1)确定合法字符集合;

2)对输入字符串的合法性进行判断

分配一个字符串数组,存三个字符串大小的,分别输入,给三个指针,输完开始使用指针找

大神 给个过程,要怎么编程。

 1.已经不会C 了,好尴尬,给你个OC的吧。。。
 NSString *contentStr = @"abcabcdefghijasdfas(fgh)kjlohg";
NSString *needReplacedStr = @"fgh";
NSString *replacedStr = @"sk";

NSString *resultStr =  [[contentStr componentsSeparatedByString:needReplacedStr] componentsJoinedByString:replacedStr];

printf("%s",[resultStr cStringUsingEncoding:NSUTF8StringEncoding]);
NSLog(@"%@",resultStr);
  1. 按照你需要替换的字符串进行分割,分割出来是一个数组 strtok 2.把分割的数组用你需要替换的内容进行拼接 ,strcat

以下代码没调试过,仅供参考:
char* replace(const char* src, const char* find, const char* replace)
{
// 判断错误
if(src == NULL || find == null || replace == NULL)
return NULL;

    // 假设初始长度为src的字符串长度
    int srclen = strlen(src);
    int findlen = strlen(find);
    int replen  = strlen(replace);
    int maxlen =srclen + 1;

    // 如果要替换的值比发现的值大,则重新计算
    if(replen > findlen)
        maxlen = (srclen  + 1) * replen /  findlen + 1;
  char* ret = malloc(maxlen);

    // 复制替换
    for(int i = 0; i < srclen; i ++)
    {
        // 如果找到find, 则复制replace,且src偏移findlen
        if(strncmp(src + i, find, findlen) == 0)
            {
                memcpy(src + i, replace, replen);
                    ret += replen;
                    i += findlen - 1;
            }
            // 如果没找到find,则复制src一个字符
            else
            {
                *ret ++ = src[i];
            }
    }

    *ret = 0;

    return ret;

}

split后放到数组,在逐一对比

希望对你有帮助 里面都有,就是需要改改 http://m.blog.csdn.net/article/details?id=53512140

http://m.blog.csdn.net/article/details?id=53512140