c++ - 如何只替换 CString 中第一次出现的字符?

标签 c++ visual-c++ stl mfc

我有一个 CString st= $/Abc/cda/($/dba/abc)/。我只想用 c:\ 替换第一次出现的 $

我尝试替换为

st.Replace("$","c:\");

但它取代了所有出现的$

你能给我建议任何只替换第一次出现的字符的逻辑吗。

最佳答案

由于您要用三个字符替换单个字符,因此可以使用 CString::Find(),然后使用 CString::Delete()CString::Insert(),比如

int nInx = st.Find('$');
if (nInx >= 0)
{    st.Delete(nInx, 1);
     st.Insert(nInx, _T("C:\\");
}

关于c++ - 如何只替换 CString 中第一次出现的字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17184510/

相关文章:

c++ - 如何获得函数在 C++ 中执行的确切次数?

c++ - 应用程序和 exe 之间的类大小更改

c++ - 如何在具有非常量指针键的映射中通过常量指针键查找

c++ - 在哪里可以找到 C++ STL 中 vector 的 size_type 定义?

c++ - 在 C++ 中使用运算符 < 对字符串进行排序

c++ - 在 C++ 中编写自定义 for 循环

c++ - 如何在不调用现有对象的析构函数的情况下在 vector 中添加和初始化对象?

c++ - CMake:如何将每个资源编译器警告视为错误并抑制特定警告?

c++ - 删除对象时可能出现堆损坏问题

c++ - 在 Visual Studio 2013 中将 libcurl 库静态链接到我的项目(一个 dll)