华为2013校园招聘上机笔试题-对源字符串中的字符串进行查找替换

2013华为校园招聘机试题9月10日题

题目及参考解答来源:http://blog.csdn.net/caollcool/article/details/7971237

3.【功能】 对源字符串中得字符串进行查找替换 并返回动态申请空间的指针 char* Fun(char* pSrc, char* pOldStr, char* pNewStr);

 【输入】pSrc   源字符串

     pOldStr 需要被替换的字符串

       pNewStr 替换的新的字符串

 【返回】替换后的新的字符串的指针

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* Fun(char* pSrc, char* pOldStr, char* pNewStr)
{
    int lenOld=strlen(pOldStr);
    char* pSlow=pSrc;
    char* pFast=pSrc;
    char* pResault=new char[100];
    char* pWrite=pResault;
    while(pFast=strstr(pFast,pOldStr))
    {
        for(;pSlow!=pFast;pSlow++)
        {
            *pWrite++=*pSlow;
        }
        pFast=pFast+lenOld;
        pSlow=pFast;
        for(char* p=pNewStr;*p!='\0';p++)
        {
            *pWrite++=*p;
        }
    }
    for(;*pSlow!='\0';pSlow++)
        *pWrite++=*pSlow;
    *pWrite='\0';
    return pResault;
}

void main()
{
    char* pSrc="findwellgoodwell";
    char* pOldStr="well";
    char* pNewStr="bad";
    char *Re;
    Re=Fun(pSrc, pOldStr, pNewStr);
    printf("源 字 符 串:%s\n需要替换的字符串:%s\n替  换  为:%s\n",pSrc, pOldStr, pNewStr);
    printf("替换后为:%s",Re);
    free(Re);
}

posted on 2012-09-18 21:42  Raphael Lou  阅读(276)  评论(0编辑  收藏  举报

导航