-
2021-01-01 17:12:13更多相关内容
-
C++ 中String 替换指定字符串的实例详解
2021-01-01 04:03:51C++ 中String 替换指定字符串的实例详解 C++的string提供了replace方法来实现字符串的替换,但是对于将字符串中某个字符串全部替换这个功能,string并没有实现,我们今天来做的就是这件事。 首先明白一个概念,即... -
C++中string替换所有指定字符串的方法
2020-08-19 05:03:15主要介绍了C++中string替换所有指定字符串的实例代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 -
c++ string替换指定字符串内的所有字段
2019-04-10 14:02:37从cmd获取到的字符串多了\r\r\n,想把其替换掉,经查string.replace并不具备将字符串中,某个字符串,所有都替换功能,分析原因可能是情况太多了,例如: 此博客自己写的replace_all 用此函数,测试普通字符串,无...从cmd获取到的字符串多了\r\r\n,想把其替换掉,经查string.replace并不具备将字符串中,某个字符串,所有都替换功能,分析原因可能是情况太多了,例如:
用此函数,测试普通字符串,无问题,可正常替换;
仔细测试,bug出现:
目的:替换掉以下字符串中间的\r\r\n为空(等同过滤),正确输出:
目的字符串:00:50:56:C0:00:08MACAddress=01:50:56:C0:00:08MACAddress=02:50:56:C0:00:08
原字符串:00:50:56:C0:00:08\r\r\n\r\r\n\r\r\nMACAddress=01:50:56:C0:00:08\r\r\n\r\r\n\r\r\nMACAddress=02:50:56:C0:00:08
调用博客中函数结果:只替换了一处。
分析:普通替换 新值长度至少为1
多-------少 1234-----=534(12替换为5)//replace_all(“1234”, “12”, “5”)
少--------多 1234--------125634(2替换为256)//replace_all(“1234”, “2”, “256”)
以上新的替换值长度至少为1
特殊替换: 新值为空,长度为0
1\n\r2---------12(\n\r替换为空后,长度由4变成2)//replace_all(“1\n\r2”, “\n\r”, “”);
新的替换值长度为0(空),此时以上博客函数,对大小判断表现出不严谨,经仔细斟酌修改如下:
//替换1 全部替换1次 12212 替换12为21------>21221 string& replace_all_distinct(string& str, const string& old_value, const string& new_value) { string::size_type pos=0; while((pos=str.find(old_value,pos))!= string::npos) { str=str.replace(pos,old_value.length(),new_value); if(new_value.length()>0) { pos+=new_value.length(); } } return str; } //替换2 循环替换,替换后的值也检查并替换 12212 替换12为21----->22211 string& replace_all(string& str, const string& old_value, const string& new_value) { string::size_type pos=0; while((pos=str.find(old_value))!= string::npos) { str=str.replace(str.find(old_value),old_value.length(),new_value); } return str; }
每次都从头查找替换,此问题解决!
警示:若用开源函数务必仔细测试,重在思路,而不是照搬,灵活运用才能游刃有余,谨慎测试 免除后患!
-
std::string 替换指定字符串中指定的子串
2019-11-19 17:01:12//************************************ ...// Describe: 使用指定子串替换字符串中的字符串,如果要替换的字符串为空,则移除原序列中的指定子串 // FullName: ReplaceStringInStd // Access: publ...//************************************ // Method: ReplaceStringInStd // Describe: 使用指定子串替换字符串中的字符串,如果要替换的字符串为空,则移除原序列中的指定子串 // FullName: ReplaceStringInStd // Access: public // Returns: std::string // Returns Describe: 返回替换操作后的字符串副本 // Parameter: std::string strOrigin ;原字符串 // Parameter: std::string strToReplace ;需要替换的字符换 // Parameter: std::string strNewChar ;替换后的字符换,当该字符串为空时,该函数的功能变成 //************************************ std::string ReplaceStringInStd(std::string strOrigin, std::string strToReplace, std::string strNewChar) { std::string strFinal = strOrigin; if (strFinal.empty()) { return strFinal; } if (strNewChar.empty()) { size_t pos = std::string::npos; // Search for the substring in string in a loop untill nothing is found while ((pos = strFinal.find(strToReplace)) != std::string::npos) { // If found then erase it from string strFinal.erase(pos, strToReplace.length()); } } else { for (std::string::size_type pos(0); pos != std::string::npos; pos += strNewChar.length()) { pos = strFinal.find(strToReplace, pos); if (pos != std::string::npos) strFinal.replace(pos, strToReplace.length(), strNewChar); else break; } } return strFinal; }
#include <iostream> #include <string> #include <algorithm> #include <functional> /* * Erase First Occurrence of given substring from main string. */ void eraseSubStr(std::string &mainStr, const std::string &toErase) { // Search for the substring in string size_t pos = mainStr.find(toErase); if (pos != std::string::npos) { // If found then erase it from string mainStr.erase(pos, toErase.length()); } } /* * Erase all Occurrences of given substring from main string. */ void eraseAllSubStr(std::string &mainStr, const std::string &toErase) { size_t pos = std::string::npos; // Search for the substring in string in a loop untill nothing is found while ((pos = mainStr.find(toErase) ) != std::string::npos) { // If found then erase it from string mainStr.erase(pos, toErase.length()); } } /* * Erase all Occurrences of all given substrings from main string using C++11 stuff */ void eraseSubStrings(std::string &mainStr, const std::vector<std::string> &strList) { // Iterate over the given list of substrings. For each substring call eraseAllSubStr() to // remove its all occurrences from main string. std::for_each(strList.begin(), strList.end(), std::bind(eraseAllSubStr, std::ref(mainStr), std::placeholders::_1)); } /* * Erase all Occurrences of all given substrings from main string using Pre C++11 stuff */ void eraseSubStringsPre(std::string &mainStr, const std::vector<std::string> &strList) { // Iterate over the given list of substrings. For each substring call eraseAllSubStr() to // remove its all occurrences from main string. for (std::vector<std::string>::const_iterator it = strList.begin(); it != strList.end(); it++) { eraseAllSubStr(mainStr, *it); } } int main() { std::string str = "Hi this is a sample string is for is testing is."; eraseAllSubStr(str, "this"); std::cout << str << std::endl; eraseSubStringsPre(str, { "for", "is", "testing" }); std::cout << str << std::endl; return 0; }
-
C++ string替换指定字符
2020-09-03 19:56:08比如,我在资源管理器地址栏直接赋值地址后,输入给某一string变量,程序中使用这一地址前,首先需要将反斜杠替换为正斜杠,程序如下: #include<iostream> #include<string> #include<algorithm&...string自带replace()方法并没有实现这一功能,需要借助<algorithm>中的replace()。
比如,我在资源管理器地址栏直接赋值地址后,输入给某一string变量,程序中使用这一地址前,首先需要将反斜杠替换为正斜杠,程序如下:
#include<iostream> #include<string> #include<algorithm> using namespace std; void main() { cout << "输入地址:"; string dir; getline(cin, dir); cout << endl << dir << endl; replace(dir.begin(), dir.end(), '\\', '/'); cout << dir << endl; }
-
C++ string替换单个指定字符为其它字符
2021-04-06 09:30:04C++的string提供了replace方法,实现字符串的替换。但是涉及到将string串中的某个字符替换成新的字符的功能,在提供的replace方法中没有实现。 在 #include<algorithm> 中也有一个replace方法,它可以实现我们... -
String 字符串替换
2021-12-31 11:35:42该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如: String s = “abcat”; String s1 = s.replace(‘a’,‘1’); 该代码的作用是将... -
java string中的替换字符串
2021-02-12 09:05:27可在寄存汉字2、java中replace用法举例:replace(char oldChar, char newChar)返回一个新的字符串,它是经过用 newChar 交换此字符串中呈现的一切 oldChar 而生成的。如下所示:String sentence1 = "我是中学生";... -
c++中string替换字符串中某段字符
2022-03-31 21:53:31string str="ab3[a]"; str=str.replace(0,3,"c"); cout<<str<<endl; res: c[a] -
java string 字符串替换
2021-02-12 12:35:11i、replace方法该方法的作用是替换字符串中所有指定的字符,然后生成一个新的字符串。经过该方法调用以后,原来的字符串不发生改变。例如:Strings=“abcat”;Strings1=s.replace(‘a’,‘1’);该代码的作用是将... -
C#自定义字符串替换Replace方法实例
2020-12-31 08:39:25前一阵遇到一个如标题的算法题,是将原有字符串的某些片段替换成指定的新字符串片段,例如将源字符串:abcdeabcdfbcdefg中的cde替换成12345,得到结果字符串:ab12345abcdfb12345fg,即:abcdeabcdfbcdefg -> ab... -
Java字符串替换指定位置的字符
2022-03-25 09:04:32首先,String类是不提供这个方法的!所以我们只能用其他类来代替。话不多说,直接上代码! -
string替换所有指定字符串
2016-08-09 15:30:08string替换所有指定字符串(C++) C++的string提供了replace方法来实现字符串的替换,但是对于将字符串中某个字符串全部替换这个功能,string并没有实现,我们今天来做的就是这件事。 首先明白一个概念,即... -
C# 替换string字符串指定位置的字符
2021-10-06 14:58:42C# 替换string字符串指定位置的字符 源码实例如下: string str = "faewfaega,"; int length = str.Length; StringBuilder temp = new StringBuilder(str); temp.Replace(",", "", length - 1, 1); str = temp.... -
C++ string 替换指定字符
2018-09-08 19:00:26C++的string提供了replace方法来实现字符串的替换,但是有时候我们想要实现类似JAVA中的替换功能——将string中的某个字符a全部替换成新的字符b,这个功能在提供的replace方法中并没有实现。 不过只要再深入了解... -
Java替换指定字符串前后的指定字符(类似于String的trim()方法)
2018-03-13 22:31:13Java替换字符串前后的指定字符(类似于String的trim()方法)想到了替换字符串或者正则表达式,但是没想到怎么实现!看来平常得多看看源码!!!2种实现方法,第一种简单但不效率低,不推荐;第二种参考JDK的方法实现... -
string替换所有指定字符串(C++)
2018-08-28 11:33:07首先明白一个概念,即string替换所有字符串,将”12212”这个字符串的所有”12”都替换成”21”,结果是什么? 可以是22211,也可以是21221,有时候应用的场景不同,就会希望得到不同的结果,所以这两种答案都做了... -
String 字符串之值替换方法
2021-10-13 13:16:18package day06; import java.util.Scanner;... replace()方法用于将日标字符串中的指定字符(串)替换成新的字符(串) * 2. replaceFirst()方法用于将目标字符串中匹配某正则表达式的第一个 子字符串替换. -
String-字符串替换
2020-06-10 19:48:08例子:原始字符串:String demo = “aback::!”; 文章目录一、replace:字符或者字符串...使用String的replace方法进行字符或者字符串替换 1、使用方法 String replace = demo.replace("::", "-"); System.out.print. -
js 字符串替换所有指定字符串
2020-03-28 16:02:03今天在写JavaScript替换字符串时,使用str.replace("a","b")方法替换发现只会替换第一个成功匹配的字符a 而使用如果想要替换全部指定字符时,需要使用str.replace(/\a/g,"b"),这里g为全局标志,可以将全部的a替换成b .... -
sqlserver replace函数 批量替换数据库中指定字段内指定字符串参考方法
2020-12-15 05:14:01语法 REPLACE ( ‘string_expression1’ , ‘string_expression2’ , ‘string_expression... ‘string_expression3’ 替换用的字符串表达式。string_expression3 可以是字符数据或二进制数据。 通俗理解即格 -
【笔记】QString中替换掉指定字符串
2021-04-15 14:17:41首先使用正则表达式QRegExp匹配指定字符串,然后使用QString的replace方法进行替换 QString originText = "KobeBryantGigiAitch"; QString searchText = "Bryant"; QString replaceText = "Gigi"; QString result = ... -
Java String 替换指定位置字符
2017-11-06 22:30:04Java String替换指定位置字符 -
java替换指定位置的字符串
2021-02-04 10:30:33一、吐槽 在和安卓部门对接过程中,真的是遇到非常扯淡的问题,我们需要的是一段坐标系的参数,安卓定义的圆形的地理坐标是 "经度 纬度"的形式,也就是说... 对于老开发来说,这个规律其实挺简单,就是替换掉奇...