您的位置:

c++字符串替换

一、c 字符串替换第n次匹配项

c++的string类型提供了replace函数来进行字符串替换,但是如果需要替换某个匹配项是第n次出现的位置呢?可以通过自己编写替换函数来实现。思路如下:

1、使用find函数查找第n次匹配项的位置;

int findNth(string& str, const string& pattern, int n){
    int pos = -1;
    while(n--){
        pos = str.find(pattern, pos + 1);
        if(pos == string::npos) break;
    }
    return pos;
}

2、使用replace函数进行替换。

void replaceNth(string& str, const string& pattern, int n, const string& newStr){
    int pos = findNth(str, pattern, n);
    if(pos != string::npos){
        str.replace(pos, pattern.size(), newStr);
    }
}

二、c替换字符串中的某个字符

使用replace函数来替换字符串中的某个字符。思路如下:

1、使用find函数查找要替换的字符的位置;

void replaceChar(string& str, char oldChar, char newChar){
    int pos = str.find(oldChar);
    while(pos != string::npos){
        str.replace(pos, 1, 1, newChar);
        pos = str.find(oldChar, pos + 1);
    }
}

三、c 字符串替换中文数字

使用map来存储中文数字和对应的阿拉伯数字,然后替换字符串中的中文数字为阿拉伯数字。思路如下:

1、初始化map;

map numMap = {
    {"一", 1},
    {"二", 2},
    {"三", 3},
    {"四", 4},
    {"五", 5},
    {"六", 6},
    {"七", 7},
    {"八", 8},
    {"九", 9}
};

  

2、遍历字符串,如果遇到中文数字,使用to_string函数将阿拉伯数字转为字符串,然后使用replace函数进行替换。

void replaceChineseNum(string& str){
    for(auto& num : numMap){
        int pos = str.find(num.first);
        while(pos != string::npos){
            str.replace(pos, num.first.size(), to_string(num.second));
            pos = str.find(num.first, pos + 1);
        }
    }
}

四、字符串替换c语言代码

当需要将c语言代码中的某个字符串替换为另一个字符串时,可以使用正则表达式和regex_replace函数。思路如下:

1、使用regex_replace函数进行替换。

void replaceCode(string& code, const string& oldStr, const string& newStr){
    regex reg(oldStr);
    code = regex_replace(code, reg, newStr);
}

五、c 字符串替换指定

如果需要替换字符串中特定位置的字符,可以直接使用string的[]运算符。思路如下:

void replaceAt(string& str, int index, char newChar){
    str[index] = newChar;
}

六、字符串字符替换c语言

使用sstream库中的stringstream来将数值转为字符串,然后使用replace函数进行替换。思路如下:

void replaceNum(string& str, int num, const string& newStr){
    stringstream ss;
    ss << num;
    string oldStr = ss.str();
    int pos = str.find(oldStr);
    if(pos != string::npos){
        str.replace(pos, oldStr.size(), newStr);
    }
}

七、字符串替换

使用replace函数进行字符串替换。思路如下:

void replaceString(string& str, const string& oldStr, const string& newStr){
    int pos = str.find(oldStr);
    while(pos != string::npos){
        str.replace(pos, oldStr.size(), newStr);
        pos = str.find(oldStr, pos + newStr.size());
    }
}

八、字符串替换码

当需要替换字符串中的特定码时,可以使用stringstream将码转为字符串,然后使用replace函数进行替换。思路如下:

void replaceCode(string& str, char code, const string& newStr){
    stringstream ss;
    ss << code;
    string codeStr = ss.str();
    int pos = str.find(codeStr);
    if(pos != string::npos){
        str.replace(pos, codeStr.size(), newStr);
    }
}

九、c字符串替换

使用replace函数进行字符串替换。思路如下:

void replaceCString(char* str, const char* oldStr, const char* newStr){
    string s(str);
    replaceString(s, oldStr, newStr);
    strcpy(str, s.c_str());
}

十、字符串替换指定字符

使用replace函数进行字符替换。思路如下:

void replaceChar(string& str, char oldChar, char newChar){
    replace(str.begin(), str.end(), oldChar, newChar);
}