字符串的算法
2014-10-16 09:31
204 查看
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"><span style="font-size:18px;"></span></span><pre name="code" class="cpp"><span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;">//1.截取字符串中的数字</span>
<span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="cpp">char vipExplain[80]={0}; sprintf(vipExplain,"%s",CLobbyCommon::getInstance()->m_lobbyMsg.vipexplain().c_str()); char tempwhite[32]={0}; char tempblack[80]={0}; int j=0; int xbox=0; int blackindex=0; for(;xbox<sizeof(vipExplain);xbox++) { tempwhite[j++]=vipExplain[xbox]; if(vipExplain[xbox]==']') { ++xbox; break; } } tempwhite[j]='\n'; for(;xbox<sizeof(vipExplain);xbox++) { tempblack[blackindex++]=vipExplain[xbox]; //if(vipExplain[xbox]=='\n') // break; } //tempblack[blackindex]='\n';
<span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;"> </span>
<span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;">//2截取字符串中的数字</span>
<span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="cpp">void CLobbyCash::CutString(string ptr,int* reservedata) //jiequ string { int i=0,j=0,n=0; int sum=ptr.size(); while(i<sum) { char strint[32]={0}; while((ptr[i]>='0' && ptr[i]<='9') && i<sum) { strint[j++]=ptr[i++]; if(!(ptr[i]>='0' && ptr[i]<='9')) { reservedata =atoi(strint); //cout<<b <<endl; n++; j=0; } } i++; } }
<span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;">//3,替换字符串的字串</span>
<span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="cpp">//JAVA中很多库函数可以直接使用,C++只好自己写 // 字符串替换函数. // 能替换所有的要替换的字符串,被替换的字符串和替换的字符串不一定一样长. // pInput - 输入字符串. // pOutput - 输出字符串, 要保证足够的空间可以存储替换后的字符串. // pSrc - 要被替换的子字符串, 比如“你妈” // pDst - 要替换成的字符串, 比如“一万字草泥马在心中崩腾” // 注意:以上的字符串均 4000 要以'\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); } }
<span style="background-color: rgb(255, 255, 255); font-family: Arial, Helvetica, sans-serif;"> </span>
相关文章推荐
- 求两字符串的最长公有串 —— 我的“平移算法”
- byte[]转换成16进制字符串的高效方法或算法
- [算法]去除字符串中相邻的相同的字符串
- 高效简洁的字符串交换算法
- 用C#截取指定长度的中英文混合字符串的最终算法
- 百度字符串算法: 字符串转十六进制显示(string to Hex)
- [代码实例]字符串近似匹配算法 C++
- 一个消除重复排列的所有输入字符串的排列算法
- 把字符串小写化 算法2
- byte[]转换成16进制字符串的高效方法或算法
- 在字符串中查找子字符串的算法
- [ C++ ] [ 算法 ] [ 字符串处理 ] 以单词为单位将字符串倒序
- 获取两个字符串之间最长公共字符串的算法(PHP)
- 在字符串中查找子字符串的算法
- 把字符串转换为二进制再输出的算法
- DateGrid不能根据字符串长度给我自动适应;所以写了个字符串处理的算法
- C语言经典算法-字符串的颠倒
- 用C#截取指定长度的中英文混合字符串的最终算法
- [组合算法] 生成不重复的字符串
- 算法函数:得到一个字符串中的最大长度的数字