现有两个字符串s1和s2,它们最多都只能包含255个字符。编写程序,将字符串s1中所有出现在字符串s2中的字符删去,然后输出s1.c语言解法
时间: 2024-05-10 19:13:51 浏览: 12
```
#include <stdio.h>
#include <string.h>
void delete_chars(char* s1, char* s2) {
int i, j, k, n;
n = strlen(s2);
for (i = 0; i < n; i++) {
for (j = 0, k = 0; s1[j] != '\0'; j++) {
if (s1[j] != s2[i]) {
s1[k++] = s1[j];
}
}
s1[k] = '\0';
}
}
int main() {
char s1[256], s2[256];
printf("请输入字符串s1:\n");
fgets(s1, 255, stdin);
printf("请输入字符串s2:\n");
fgets(s2, 255, stdin);
delete_chars(s1, s2);
printf("删去s2中字符后的s1为:%s\n", s1);
return 0;
}
```
这是一个简单的 C 语言解法,使用了两个嵌套的 for 循环,第一个循环遍历 s2 中的每个字符,第二个循环遍历 s1 中的每个字符,如果字符不在 s2 中,就将它复制到新的位置。最后,将新字符串的结尾加上一个空字符 '\0'。
相关问题
现有两个字符串s1和s2,它们最多都只能包含255个字符。编写程序,将字符串s1中所有出现在字符串s2中的字符删去,然后输出s1
的剩余字符。
这道题目可以使用哈希表来解决。具体步骤如下:
1. 新建一个数组或哈希表,用来记录字符串s2中出现的字符。
2. 遍历字符串s2,对于每一个字符,将对应的数组或哈希表位置上的值设置为1或true。
3. 遍历字符串s1,对于每一个字符,判断其在数组或哈希表中的位置上的值是否为1或true。如果是,说明这个字符在字符串s2中也出现过,可以删除;如果不是,则说明这个字符在字符串s2中没有出现过,需要保留。
4. 将剩余字符拼接起来,输出即可。
具体实现可以参考以下代码:
```python
s1 = "abcdefg"
s2 = "cdehij"
# 建立哈希表,记录字符串s2中出现的字符
s2_map = {}
for char in s2:
s2_map[char] = True
# 遍历字符串s1,判断每个字符是否需要删除
new_s1 = ""
for char in s1:
if char not in s2_map:
new_s1 += char
# 输出剩余字符
print(new_s1) # 输出为: abfg
```
用c语言现有两个字符串s1和s2,它们最多都只能包含255个字符。编写程序,将字符串s1中所有出现在字符串s2中的字符删去,然后输出s1。
好的,这是一个关于C语言编程的问题。以下是程序实现:
```
#include <stdio.h>
#include <string.h>
int main() {
char s1[256], s2[256];
int i, j, k;
printf("请先输入字符串s1:\n");
scanf("%s", s1);
printf("接下来请再输入字符串s2:\n");
scanf("%s", s2);
for (i = 0; i < strlen(s2); i++) {
for (j = 0; j < strlen(s1); j++) {
if (s1[j] == s2[i]) {
for (k = j; k < strlen(s1); k++) {
s1[k] = s1[k + 1];
}
j--;
}
}
}
printf("最终的s1字符串为:%s\n", s1);
return 0;
}
```
程序实现的思路是:首先让用户输入字符串s1和字符串s2,然后遍历字符串s2中的所有字符,再在字符串s1中遍历所有字符。如果发现字符在两个字符串中都存在,就把字符串s1中这个字符删除,并将删除后的位置依次往前移动。最后输出删除后的字符串s1。
注意,该程序假设用户输入的都是只有小写字母和数字的字符串,并且要求s1和s2的长度都不超过255个字符。如果字符串中包含其他字符或超出长度,需要更改代码。
相关推荐
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.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)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)