删去两个字符串中相同的字符
时间: 2024-05-04 20:19:15 浏览: 10
可以使用两个指针分别指向两个字符串的字符,然后比较它们是否相同,如果相同,则从两个字符串中删除这个字符,否则继续向后移动指针。具体实现可以参考下面的代码:
```python
def delete_common_chars(str1, str2):
i = j = 0
while i < len(str1) and j < len(str2):
if str1[i] == str2[j]:
str1 = str1[:i] + str1[i+1:]
str2 = str2[:j] + str2[j+1:]
else:
i += 1
j += 1
return str1, str2
```
这个函数接受两个字符串作为参数,返回删去相同字符后的两个字符串。
相关问题
用c语言删去两个字符串中相同的字符
可以使用双重循环遍历两个字符串,对于每个字符,判断是否在另一个字符串中出现过,如果出现过,则在两个字符串中都将其删除。代码如下:
```c
#include <stdio.h>
#include <string.h>
void remove_common_chars(char* str1, char* str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
int i, j, k;
for (i = 0; i < len1; i++) {
for (j = 0; j < len2; j++) {
if (str1[i] == str2[j]) {
// 删除str1中的该字符
for (k = i; k < len1; k++) {
str1[k] = str1[k + 1];
}
len1--;
i--;
// 删除str2中的该字符
for (k = j; k < len2; k++) {
str2[k] = str2[k + 1];
}
len2--;
j--;
}
}
}
}
int main() {
char str1[100], str2[100];
printf("请输入第一个字符串:");
scanf("%s", str1);
printf("请输入第二个字符串:");
scanf("%s", str2);
remove_common_chars(str1, str2);
printf("删除相同字符后的第一个字符串为:%s\n", str1);
printf("删除相同字符后的第二个字符串为:%s\n", str2);
return 0;
}
```
需要注意的是,在删除字符的过程中,由于字符串长度发生了改变,所以需要及时更新字符串的长度。此外,删除字符的方式可以有多种,上述代码中使用的是将该字符之后的所有字符前移一位的方式。
python如何删去字符串中的标点符号
在Python中,可以使用多种方法去除字符串中的标点符号。
方法一:使用string模块中的punctuation常量
punctuation常量包含了所有的标点符号,可以通过遍历字符串,并判断每个字符是否在punctuation中,来去除标点符号。
```python
import string
def remove_punctuation(s):
no_punct = ""
for char in s:
if char not in string.punctuation:
no_punct += char
return no_punct
text = "Hello, World!"
clean_text = remove_punctuation(text)
print(clean_text) # 输出:Hello World
```
方法二:使用正则表达式库re
使用re库中的sub函数,可以使用正则表达式匹配标点符号,并将其替换为空字符。
```python
import re
def remove_punctuation(s):
no_punct = re.sub(r'[^\w\s]', '', s)
return no_punct
text = "Hello, World!"
clean_text = remove_punctuation(text)
print(clean_text) # 输出:Hello World
```
以上两种方法都可以有效去除字符串中的标点符号,你可以根据自己的需求选择其中一种方法。