删除char字符串相同字符
时间: 2023-07-14 14:13:03 浏览: 58
可以使用双指针的方法来删除字符串中相同的字符。
具体思路如下:
1. 用两个指针 i 和 j 来遍历整个字符串,i 指向当前需要判断的字符,j 指向第一个不同于该字符的位置。
2. 如果 i 和 j 指向的字符不同,则将 i 的下一个字符赋值为 j 指向的字符,并将 i 向后移动一位,j 向后移动到下一个不同于该字符的位置。
3. 如果 i 和 j 指向的字符相同,则将 j 向后移动到下一个不同于该字符的位置。
4. 重复步骤2和3,直到 j 遍历完整个字符串为止。
5. 最后,将 i 的下一个字符置为 '\0',即将字符串截断,使其长度为 i+1。
代码实现如下:
```c++
void removeDuplicateChars(char* str) {
if (str == nullptr || *str == '\0') {
return;
}
int i = 0, j = 1;
while (str[j] != '\0') {
if (str[i] == str[j]) {
j++;
} else {
str[++i] = str[j++];
}
}
str[++i] = '\0';
}
```
使用方法如下:
```c++
char str[] = "abacddc";
removeDuplicateChars(str);
std::cout << str << std::endl; // 输出:abcd
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)