字符串处理,求一算法。 用C实现类似"China.map.bmp"转换为"China.map.jpg", 就是将bmp换成jpg即可。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 ……去找现成的,比如Cximage。 cxz1985,只能用C,不能用CSting 我前些日子写了一个简单的demohttp://topic.csdn.net/u/20081103/16/4babc5b7-31d5-4f60-868a-31a6fad840f1.html //MFCCString str = "China.map.bmp";str.Replace("bmp", "jpg");//纯C,好像没有字符串替换函数,要自己写。 // 字符串替换函数.// 能替换所有的要替换的字符串,被替换的字符串和替换的字符串不一定一样长.// 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); }} DLL 错误签名 如何执行一条SQL插入语句? 救命啊:视图类中无法引用对话框类中的成员!!! 想在程序运行目录下建立按年月日每天建立一个文件夹 关于窗口最大化最小化关闭按钮的消息 有没有比较好的网络开发包,用于网游。 怎样遍列指定文件夹下的所有文件(不包括子文件夹)? 100分问题:如何按照创建的时间顺序列出目录内的文件 计算机通信与网络方面的毕业论文写什么好啊? 有多少人敢回我的贴子,看完msdn(vc部分)要多长时间? 跪求高手指点,如何在没有装office等相关软件的情况下显示相应的文档? CLISTCTRL 和 CTREECTRL 怎么实现我这个问题
CString str = "China.map.bmp";
str.Replace("bmp", "jpg");//纯C,好像没有字符串替换函数,要自己写。
// 能替换所有的要替换的字符串,被替换的字符串和替换的字符串不一定一样长.
// 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);
}
}