有一个字符串,内有若干字符,现输入一个字符,要求程序将字符串中该字符删去。用外部函数实现。

方法一:用两个数组实现

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);
}
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值