#include
void main()
{
extern void input_str(char str[]);
extern void input_char(char a);
extern void delete_char(char str[], char b);
char str[80];
char a;
input_str(str);
input_char(a);
delete_char(str, a);
}
void input_str(char str[])
{
gets(str);
}
void input_char(char a)
{
a = getchar();
}
void delete_char(char str[], char b)
{
int i = 0, j;
while(str[i] != '\0')
{
if(str[i] == b)
{
for(j = i; str[j] != '\0'; j++)
{
str[j] = str[j + 1];
}
str[j + 1] = '\0';
break;
}
i++;
}
printf("%s\n", str);
}
#include<stdio.h>
#include<string.h>
#include<malloc.h>
void main()
{
extern void input_str(char str[]);
extern void input_char(char *a);
extern void delete_char(char str[], char b);
char str[80];
char *a = (char *)malloc(10*sizeof(char));
memset(a,0x0,10*sizeof(char));
input_str(str);
printf("str=%s\n",str);
input_char(a);
printf("a=%c\n",*a);
delete_char(str, *a);
}
void input_str(char str[])
{
gets(str);
}
void input_char(char *a)
{
*a = getchar();
}
void delete_char(char str[], char b)
{
int i = 0, j;
while(str[i] != '\0')
{
if(str[i] == b)
{
for(j = i; str[j] != '\0'; j++)
{
str[j] = str[j + 1];
}
str[j + 1] = '\0';
break;
}
i++;
}
printf("%s\n", str);
}
你的delete_char函数没问题
但是void input_char(char a)有问题
函数传参不会改变值
改成这样
void input_char(char *a)
{
*a = getchar();
}