思考过程:
1.用户输入字符串,用什么存,怎么输入?
2.用户输入X
3.在字符串中查找X,并删除。怎么找,怎么删。
解决:
1.创建字符数组,用 gets函数输入。(gets相比scanf("%s",....) 可以输入空格,制表符)
char S[100];
printf("input the string");
gets(S);
2.循环查找,找到则删除。
for(i=0;S[i]!='\0';i++)
{
if(S[i]==x)
{
for(j=i;S[j]!='\0';j++)
S[j]=S[j+1];//用后面一个覆盖当前这个数,并整体前移。
S[j]='\0'; //移动完后,新的字符串记得加'\0';
i--; //注意!!这个位置的新的数还没有被判断,例如hello,想删除l,如果没有i--,则输出helo.
}
}
3.整体代码
输入 hello l
输出 heo
#include <stdio.h>
int main(void)
{
int i,j;
char S[100],x; //100是自己定义的
printf("input the string\n");
gets(S);
printf("input the char\n");
scanf("%c",&x);
for(i=0;S[i]!='\0';i++)
{
if(S[i]==x)
{
for(j=i;S[j]!='\0';j++)
S[j]=S[j+1]; //用后面一个覆盖当前这个数,并整体前移。
S[j]='\0'; //移动完后,新的字符串记得加'\0';
i--; //注意!!这个位置的新的数还没有被判断,例如hello,想删除l,如果没有i--,则输出helo.
}
}
puts(S);
return 0;
}