用C实现类似"China.map.bmp"转换为"China.map.jpg", 就是将bmp换成jpg即可。

解决方案 »

  1.   

    ……去找现成的,比如Cximage。
      

  2.   

    cxz1985,只能用C,不能用CSting
      

  3.   

    我前些日子写了一个简单的demohttp://topic.csdn.net/u/20081103/16/4babc5b7-31d5-4f60-868a-31a6fad840f1.html
      

  4.   

    //MFC
    CString str = "China.map.bmp";
    str.Replace("bmp", "jpg");//纯C,好像没有字符串替换函数,要自己写。
      

  5.   

    // 字符串替换函数.
    // 能替换所有的要替换的字符串,被替换的字符串和替换的字符串不一定一样长.
    // pInput - 输入字符串.
    // pOutput - 输出字符串, 要保证足够的空间可以存储替换后的字符串.
    // pSrc - 要被替换的子字符串, 比如%user%
    // pDst - 要替换成的字符串, 比如user1
    // 注意:以上的字符串均要以'\0'结尾.
    //
    void Substitute(char *pInput, char *pOutput, char *pSrc, char *pDst)
    {
        char    *pi, *po, *p;
        int     nSrcLen, nDstLen, nLen;    // 指向输入字符串的游动指针.
        pi = pInput;    
        // 指向输出字符串的游动指针.
        po = pOutput;
        // 计算被替换串和替换串的长度.
        nSrcLen = strlen(pSrc);
        nDstLen = strlen(pDst);
     
        // 查找pi指向字符串中第一次出现替换串的位置,并返回指针(找不到则返回null).   
        p = strstr(pi, pSrc);
        if(p)
        {
            // 找到.
            while(p)
            {
                // 计算被替换串前边字符串的长度.
                nLen = (int)(p - pi);
                // 复制到输出字符串.
                memcpy(po, pi, nLen);
                memcpy(po + nLen, pDst, nDstLen);
                // 跳过被替换串.
                pi = p + nSrcLen;
                // 调整指向输出串的指针位置.
                po = po + nLen + nDstLen;
                // 继续查找.
                p = strstr(pi, pSrc);
            }
            // 复制剩余字符串.
            strcpy(po, pi);
        }
        else
        {
            // 没有找到则原样复制.
            strcpy(po, pi);
        }
    }