c语言用一个单词替代给定字符串中的某个单词。


#include<stdio.h>
#include<ctype.h>

int main(void)
{
	int i, j, x, del, beg = 1;

	char sen[200];
	int newsen;
	char wor[20];
	char sub[20];

	puts("Please enter a sentence(no more than 150 chars):");
	gets(sen);
	puts("Please enter a word you want to be substituted:");
	gets(wor);
	puts("Please enter a word you want to substitute:");
	gets(sub);
	newsen = strlen(sen);
	for (i = 0; i < newsen - 1; i++)
	{
		if (beg && isalpha(sen[i]))
		{
			beg = 0;
			for (j = 0; j < strlen(wor); j++)
			{
				if (wor[j] != sen[i + j])
					break;
			}
			if (j == strlen(wor))
			{

				if (strlen(wor) < strlen(sub))
				{
					for (int y = 1; y <= strlen(sub) - strlen(wor); y++)
					{
						for (x = newsen + 1; x > i + strlen(wor); x--)
						{
							sen[x] = sen[x - 1];
						}
						newsen++;
					}
				}
				for (x = i; x < strlen(sub) + i; x++)
				{
					sen[x] = sub[x - i];
				}

				for (int y = 1; y <= strlen(wor) - strlen(sub); y++)
				{
					for (x = strlen(sub) + i; x < sizeof(sen) - 1; x++)
					{
						sen[x] = sen[x + 1];
					}
				}

			}
		}

		if (isalpha(sen[i + 1]) && !isalpha(sen[i]))
			beg = 1;

	}
	puts(sen);
	return 0;
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值