用c语言现有两个字符串s1和s2,它们最多都只能包含255个字符。编写程序,将字符串s1中所有出现在字符串s2中的字符删去,然后输出s1。
时间: 2024-04-29 08:26:01 浏览: 100
好的,让我来回答你的问题。以下是 C 语言代码实现:
```
#include <stdio.h>
#include <string.h>
int main()
{
char s1[256], s2[256];
int i, j, k = 0;
printf("请输入字符串s1:");
scanf("%s", s1);
printf("请输入字符串s2:");
scanf("%s", s2);
for(i = 0; i < strlen(s1); i++)
{
for(j = 0; j < strlen(s2); j++)
{
if(s1[i] == s2[j])
{
break;
}
}
if(j == strlen(s2))
{
s1[k++] = s1[i];
}
}
s1[k] = '\0';
printf("结果为:%s", s1);
return 0;
}
```
代码逐行解释如下:
1. `#include <stdio.h>`:包含标准输入输出库函数的头文件。
2. `#include <string.h>`:包含操作字符串的头文件。
3. `int main()`:主函数。
4. `char s1[256], s2[256];`:定义两个字符串数组,长度为 256。
5. `int i, j, k = 0;`:定义三个整型变量。
6. `printf("请输入字符串s1:");`:提示用户输入 s1 字符串。
7. `scanf("%s", s1);`:输入字符串 s1。
8. `printf("请输入字符串s2:");`:提示用户输入 s2 字符串。
9. `scanf("%s", s2);`:输入字符串 s2。
10. `for(i = 0; i < strlen(s1); i++)`:遍历字符串 s1。
11. `for(j = 0; j < strlen(s2); j++)`:遍历字符串 s2。
12. `if(s1[i] == s2[j])`:如果 s1 字符串中的某个字符与 s2 字符串中的某个字符相等。
13. `break;`:跳出内层循环。
14. `if(j == strlen(s2))`:如果 s1 字符串中的某个字符不在 s2 字符串中。
15. `s1[k++] = s1[i];`:将该字符保存到 s1 中,并将 k 自增。
16. `s1[k] = '\0';`:在 s1 字符串末尾加上一个空字符。
17. `printf("结果为:%s", s1);`:输出结果。
18. `return 0;`:返回退出程序。
当用户输入 s1 为 "I love China",s2 为 "aeiou" 时,输出结果为 "I lv Chn"。
阅读全文