习题8-6 删除字符(20 分)
本题要求实现一个删除字符串中的指定字符的简单函数。
函数接口定义:
1
| void delchar( char *str, char c );
|
其中char *str
是传入的字符串,c
是待删除的字符。函数delchar
的功能是将字符串str
中出现的所有c
字符删除。
裁判测试程序样例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| #include <stdio.h> #define MAXN 20
void delchar( char *str, char c ); void ReadString( char s[] );
int main() { char str[MAXN], c;
scanf("%c\n", &c); ReadString(str); delchar(str, c); printf("%s\n", str);
return 0; }
|
输入样例:
输出样例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| #include <stdio.h> #define MAXN 20 void delchar( char *str, char c ); int main() { char str[MAXN], c; scanf("%c\n", &c); gets(str); delchar(str, c); printf("%s\n", str); return 0; } void delchar( char *str, char c ) { int i=0,count=0,j=0,coun=0,q=0; char a [100],b[100]; while(str[i++]!='\0') { count++; } for(i=0;i<count;i++) { if(str[i]==c) { continue; }else{
a[j++]=str[i]; coun++; } } j=0; for(i=0;i<coun;i++) { str[q++]=a[j++]; }
str[q]='\0'; }
|