string替換所有指定字串(C++)
首先明白一個概念,即string替換所有字串,將"12212"這個字串的所有"12"都替換成"21",結果是什麼?
可以是22211,也可以是21221,有時候應用的場景不同,就會希望得到不同的結果,所以這兩種答案都做了實現,程式碼如下:
#include <string> #include <iostream> using namespace std; string& replace_all(string& str,const string& old_value,const string& new_value) { while(true) { string::size_type pos(0); if( (pos=str.find(old_value))!=string::npos ) str.replace(pos,old_value.length(),new_value); else break; } return str; } string& replace_all_distinct(string& str,const string& old_value,const string& new_value) { for(string::size_type pos(0); pos!=string::npos; pos+=new_value.length()) { if( (pos=str.find(old_value,pos))!=string::npos ) str.replace(pos,old_value.length(),new_value); else break; } return str; } int main() { cout << replace_all(string("12212"),"12","21") << endl; cout << replace_all_distinct(string("12212"),"12","21") << endl; } /* 輸出如下: 22211 21221 */
相關推薦
string替換所有指定字串(C++)
C++的string提供了replace方法來實現字串的替換,但是對於將字串中某個字串全部替換這個功能,string並沒有實現,我們今天來做的就是這件事。首先明白一個概念,即string替換所有字串,將"12212"這個字串的所有"12"都替換成"21",結果是什麼? 可以
string替換所有指定字符串(C++)
con pos c++ clas 兩種 esp wan replace fin C++的string提供了replace方法來實現字符串的替換,但是對於將字符串中某個字符串全部替換這個功能,string並沒有實現,我們今天來做的就是這件事。首先明白一個概念,即string替
ALGO-70演算法訓練 最長字串 (c++)
演算法訓練 最長字串 時間限制:1.0s 記憶體限制:512.0MB 求出5個字串中最長的字串。每個字串長度在100以內,且全為小寫字母。 樣例輸入 one two three four fiv
ALGO-71演算法訓練 比較字串 (c++)
演算法訓練 比較字串 時間限制:1.0s 記憶體限制:512.0MB 程式設計實現兩個字串s1和s2的字典序比較。(保證每一個字串不是另一個的字首,且長度在100以內)。若s1和s2相等,輸出0;若它們
求一個數的所有質因子(C++)
功能:輸入一個正整數,按照從小到大的順序輸出它的所有質數的因子(如180的質數因子為2 2 3 3 5 ) 最後一個數後面也要有空格剛開始沒有思路,後來查了下質因子的求法,可通過以下方法求出:#include<iostream>#include<st
在一個字串陣列中找出重複的字串(C#)
方法一:(hashtable)推薦使用 private bool checkImportDuplicate(string[] str ) { bool flag = false; Hashtable hash = new Hashtabl
LeetCode | Reverse Words in a String(C#)
++ style str blog cnblogs count item leetcode string 題目: Given an input string, reverse the string word by word. For example,Given s = "
標準C++中的string類的用法總結(轉)
spa 大小 它的 world 包括 文本 語法 ner append() 轉自:http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html 相信使用過MFC編程的朋友對CString這個類的印象應該
c++ 容器填充指定長度(fill_n)
#include <iostream> // cout #include <algorithm> // fill_n #include <vector> // vector using namespace std; int m
密碼問題(函式、字串、指標)(航電2043題改版)(c++)
【問題描述】 假設一個比較安全的密碼至少應該滿足下面兩個條件: (1)密碼長度大於等於8,且不要超過16。 (2)密碼中的字元應該來自下面“字元類別”中四組中的至少三組。 這四個字元類別分別為: 1.大寫字母:A,B,C…Z; 2.小寫字母:a,b,c…z; 3.數字:0,1,2…9;
LeetCode 678. 有效的括號字串(C、C++、python)
給定一個只包含三種字元的字串:( ,) 和 *,寫一個函式來檢驗這個字串是否為有效字串。有效字串具有如下規則: 任何左括號 ( 必須有相應的右括號 )。 任何右括號 ) 必須有相應的左括號 (&
整數的N進位制字串表示(c++)
【問題描述】 編寫函式itob(n,s,b),用於把整數n轉換成以b為基的字串並存儲到s中。 編寫程式,使用函式itob(n,s,b)將輸入的整數n,轉換成字串s,將s輸出。 轉換後的字串從最高的非零位開始輸出。 如果n為負數,則輸出的字串的第一個字元為’-’。 b為大於1小於37的任意
LeetCode 459. 重複的子字串(C++、python)
給定一個非空的字串,判斷它是否可以由它的一個子串重複多次構成。給定的字串只含有小寫英文字母,並且長度不超過10000。 示例 1: 輸入: "abab" 輸出: True 解釋: 可由子字串 "ab" 重複兩次構成。 示例 2: 輸入: "aba" 輸出: False
自定義擴充套件js函式庫---string.replaceAll()---字元替換所有指定字元
/* * 自定義擴充套件js函式庫 * @time:181203 * @add : string.replaceAll()---字元替換所有指定字元 */ /* * string.replaceAll()---字元替換所有指定字元 * @parameter: FindTex
PTA-找最長的字串(C語言)
本題要求編寫程式,針對輸入的N個字串,輸出其中最長的字串。 輸入格式: 輸入第一行給出正整數N;隨後N行,每行給出一個長度小於80的非空字串,其中不會出現換行符,空格,製表符。 輸出格式: 在一行中用以下格式輸出最長的字串: The longest is: 最長的字串 如果字串的
【劍指Offer】輸入一個正數s,打印出所有和為s 的連續正數序列(序列大小至少為2) (C++)
題目用例: s = 15,那麼由於1+2+3+4+5 = 4+5+6=7+8 = 15,所以存在3個這樣的序列。 分析: 由於序列大小至少為2,我們定義兩個變數l和r,分別表示序列的最小值和最大值。 對於r而言,r取何值其實是有一個範圍的,即當序列只有2
表示數值的字串(C++描述)
請實現一個函式用來判斷字串是否表示數值(包括整數和小數)。例如,字串"+100","5e2","-123","3.1416"和"-1E-16"都表示數值。 但是"12e","1a3.14","1.2.3
C字串(一)
#include <stdio.h> #include "../include/c_string.h" #define UNUSED 0 int main() { sizeofAndS
資料結構 - 互換二叉樹中所有結點的左右子樹(C++)
#include <iostream> #define NULL 0 using namespace std; template<class T> struct BTNode { T data; BTNode<T> *lChild, *rC
Reverse Words in a String III(C++)
繼續自己刷題之路。。。 Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace