C++ 字符串的替换方法

 今天同学问到C++的一个问题:“ 将字符串%abv%a中的%a 替换掉,将字符串变为cbvc”,之前没整过这个,想到应该相应的函数吧。到网上一查:可以使用字符串的Replace函数,具体说明如下:

CString::Replace
int Replace( TCHAR chOld, TCHAR chNew );
int Replace( LPCTSTR lpszOld, LPCTSTR lpszNew );
返回值
返回被替换的字符数。如果这个字符串没有改变则返回零。
参数
chOld
要被chNew 替换的字符
chNew
要用来替换chOld 的字符。
lpszOld
一个指向字符串的指针,该字符串包含了要被lpszNew 替换的字符。
lpszNew
一个指向字符串的指针,该字符串包含了要用来替换lpszOld 的字符。
说明
此成员函数用一个字符替换另一个字符。函数的第一个原形在字符串中用chNew
现场替换chOld。函数的第二个原形用lpszNew 指定的字符串替换lpszOld 指定
的子串。
在替换之后,该字符串有可能增长或缩短;那是因为lpszNew 和lpszOld 的长度
不需要是相等的。两种版本形式都进行区分大小写的匹配。
代码示例:
        
CString s1="%abv%a";
CString s2="c";
int word=s1.Replace("%a",s2);
cout<<s1<<endl;
新建工程写代码的时候,遇到错误,CString是没定义的类型,以为只要包含String.h就行了,结果还是报错,一查才知道应该包含“afx.h”,包含了“afx.h”后还是有错
Compiling...
CReplaceChar.cpp
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
Debug/CReplace.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
修改配置,“Project-Settings-General"里改成”Using MFC in a Static Library“即可。


 

### 回答1: c 字符串替换指定字符是指将字符串中的某个字符替换成另一个字符。可以通过循环遍历字符串的每个字符,然后判断是否需要替换,若需要替换则将字符替换成目标字符,最后得到新的字符串。 具体步骤可以如下: 1. 定义一个空字符串作为替换后的结果。 2. 使用for循环遍历源字符串中的每个字符。 3. 判断当前字符是否需要替换,如果是需要替换字符则将其替换成目标字符,否则保持不变。 4. 将替换后的字符添加到结果字符串中。 5. 循环结束后,结果字符串就是替换完成后的最终结果。 以下是一个示例代码,演示了如何实现字符串替换指定字符: ```python def replace_char(string, source_char, target_char): result = "" for char in string: if char == source_char: result += target_char else: result += char return result # 调用示例 source_string = "Hello, world!" source_char = "o" target_char = "*" replaced_string = replace_char(source_string, source_char, target_char) print(replaced_string) ``` 以上代码将字符串中的所有小写字母 "o" 替换成了星号 "*",输出结果为 "Hell*, w*rld!"。如果需要替换其他字符,只需修改参数即可。 这是实现字符串替换指定字符的基本思路,可以根据实际需要进行适当的修改和优化。 ### 回答2: 字符串替换指定字符是指在一个字符串中将指定的字符替换为新的字符字符串。使用C语言可以通过遍历字符串,找到匹配的字符并进行替换来实现。 首先,我们需要声明一个字符数组来存储字符串,例如: ```c char str[] = "Hello, World!"; ``` 然后,我们可以使用循环遍历字符串中的每个字符,判断是否需要替换。假设我们想将字符'e'替换字符'X',可以使用如下代码: ```c for (int i = 0; i < strlen(str); i++) { if (str[i] == 'e') { str[i] = 'X'; } } ``` 以上代码会遍历字符串中的每个字符,如果字符是'e',就将其替换为'X'。如果我们想要替换的是一个字符串,可以使用库函数`strcpy`来实现: ```c #include <string.h> char str[] = "Hello, World!"; char replace[] = "X"; char *ptr = strstr(str, "o"); if (ptr != NULL) { strcpy(ptr, replace); } ``` 以上代码会用新字符串"X"替换字符串中首次出现的"o"。 ### 回答3: 字符串替换是指将一个字符串中的指定字符替换为另一个字符。为了实现这个功能,可以使用编程语言中的字符串替换函数或方法。 一个常见的例子是使用Python编程语言中的replace()方法替换字符串中的指定字符。replace()方法接受两个参数,第一个参数是要替换字符,第二个参数是替换后的字符。以下是一个示例代码: ```python string = "Hello, World!" new_string = string.replace("o", "0") print(new_string) ``` 运行上述代码,输出的结果将是: ``` Hell0, W0rld! ``` 在这个例子中,我们将字符串中的所有字符"o"替换为"0",并将新的字符串赋值给变量new_string。输出的结果是新的字符串"Hello, World!"中所有字符"o"被替换为"0"。 在其他编程语言中,也有类似的字符串替换函数或方法可以使用。只需查阅相应编程语言的文档或教程,了解如何使用字符串替换函数或方法即可实现字符串替换操作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值