题目
从字符数组s中删除存放在c中的字符,要求s和c需从键盘输入。
1.当s和c都是字符串时,删去s中和c相同的字符。
代码如下
#include<stdio.h>
int main()
{
char s[80],c[80]; //定义字符组s和字符组c
int i,j,n;
printf("请输入字符组s:\n");
gets(s); //从输入端获得字符组s
printf("请输入存放在c中的字符:\n");
gets(c); //从输入端获得字符组c
for(i=0;s[i]!='\0';i++) //开始循环,从字符组s的第一个字符开始检索
{
for(n=0;c[n]!='\0';n++) //开始循环,从字符组c的第一个字符开始检索
{
if(s[i]==c[n]) //假设找到第i个字符和字符组c的第n个是对应的
{
for(j=i;s[j]!='\0';j++) //引入新的变量j,开始循环,找出i之后的每一个字符位置
{
s[j]=s[j+1];//将第i个,也就是第j个字符(等于字符组c的字符)之后的每一个字符往前进一位
}
}
}
}
printf("%s\n",s);
return 0;
}
运行结果如下
2.当s是字符串,而c只有一个字符时,删去s中c的字符。
代码如下
#include<stdio.h>
int main()
{
char s[80],c; //定义字符组s和字符c
int i,j;
printf("请输入字符组s:\n");
gets(s); //从输入端获得字符组s
printf("请输入存放在c中的字符:\n");
c=getchar(); //从输入端获得字符c
for(i=0;s[i]!='\0';i++) //开始循环,从字符组s的第一个字符开始检索
{
if(s[i]==c) //假设找到第i个字符和字符c是对应的
{
for(j=i;s[j]!='\0';j++) //引入新的变量j,开始循环,找出i之后的每一个字符位置
{
s[j]=s[j+1]; //将第i个,也就是第j个字符(等于字符c的字符)之后的每一个字符往前进一位
}
}
}
printf("%s\n",s);
return 0;
}