方法一:用两个数组实现
file1.c(文件1):
#include<stdio.h>
int main()
{
extern void enter_string(char str1[]);
extern void delete_string(char str1[], char str2[], char ch);
extern void print_string(char str2[]);
char c, str1[80], str2[80];
enter_string(str1);
scanf("%c", &c);
delete_string(str1, str2, c);
print_string(str2);
return 0;
}
file2.c(文件2):
#include<stdio.h>
void enter_string(char str1[80] )
{
gets(str1);
}
file3.c(文件3):
void delete_string(char str1[], char str2[], char ch)
{
int i, j;
for (i = j = 0; str1[i] != '\0'; i++)
{
if (str1[i] != ch)
{
str2[j++] = str1[i];
}
}
str2[j] = '\0';
}
file4.c(文件4):
#include<stdio.h>
void print_string(char str2[])
{
printf("%s\n", str2);
}
在VS2019下,需将源文件的gets和scanf做些修改:
file1.c(文件1):
#include<stdio.h>
int main()
{
extern void enter_string(char str1[]);
extern void delete_string(char str1[], char str2[], char ch);
extern void print_string(char str2[]);
char c, str1[80], str2[80];
enter_string(str1);
scanf_s("%c", &c, (unsigned int)sizeof(char));
delete_string(str1, str2, c);
print_string(str2);
return 0;
}
file2.c(文件2):
#include<stdio.h>
void enter_string(char str1[80] )
{
gets_s(str1,80);
}
file3.c(文件3):
void delete_string(char str1[], char str2[], char ch)
{
int i, j;
for (i = j = 0; str1[i] != '\0'; i++)
{
if (str1[i] != ch)
{
str2[j++] = str1[i];
}
}
str2[j] = '\0';
}
file4.c(文件4):
#include<stdio.h>
void print_string(char str2[])
{
printf("%s\n", str2);
}
方法二:用一个数组实现
file1.c(文件1):
#include<stdio.h>
int main()
{
extern void enter_string(char str[]);
extern void delete_string(char str[], char ch);
extern void print_string(char str[]);
char c, str[80];
enter_string(str);
scanf("%c", &c);
delete_string(str, c);
print_string(str);
return 0;
}
file2.c(文件2):
#include<stdio.h>
void enter_string(char str[80])
{
gets(str);
}
file3.c(文件3):
void delete_string(char str[], char ch)
{
int i, j;
for (i = j = 0; str[i] != '\0'; i++)
{
if (str[i] != ch)
{
str[j++] = str[i];
}
}
str[j] = '\0';
}
file4.c(文件4):
#include<stdio.h>
void print_string(char str[])
{
printf("%s\n", str);
}
在VS2019下,需将源文件的gets和scanf做些修改:
file1.c(文件1):
#include<stdio.h>
int main()
{
extern void enter_string(char str[]);
extern void delete_string(char str[], char ch);
extern void print_string(char str[]);
char c, str[80];
enter_string(str);
scanf_s("%c", &c, (unsigned int)sizeof(char));
delete_string(str, c);
print_string(str);
return 0;
}
file2.c(文件2):
#include<stdio.h>
void enter_string(char str[80])
{
gets_s(str,80);
}
file3.c(文件3):
void delete_string(char str[], char ch)
{
int i, j;
for (i = j = 0; str[i] != '\0'; i++)
{
if (str[i] != ch)
{
str[j++] = str[i];
}
}
str[j] = '\0';
}
file4.c(文件4):
#include<stdio.h>
void print_string(char str[])
{
printf("%s\n", str);
}