C语言 单词的查找和替换

P1540_机器翻译(C语言实现) 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。 ... 阅读详情

用C语言做的程序,编程环境visual C++ 6.0。此程序分成两个部分,一是对文件文本单词的查找,二是对文本内容的替换。

程序中需要创建子文件textfile,再在该文件中创建wordtext和wordtext2,可以直接用记事本打开文件并且把需要处理的文本写入文件,打开程序就可以执行了。

程序中有的问题和疑惑,可以在评论区指出,我会尽量给大家回复。

//write by YU
//单词统计和替换 2021/02/08/ 
//第二次优化时间 2021/02/10/ 结构体数组排序
//第三次优化时间 2021/02/11/ 功能函数补充
//第四次又花时间 2021/02/24/ 替换函数补充

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>

typedef struct word{
	char str[50];    //单词最大长度设为50
	int cnt;         //单词出现次数
}Str;

/*函数声明*/
void endscan();
int search(FILE *fp,Str words[],int *num);      //寻找单词
void selectmenu(FILE*fp,Str words[],Str words2[],int *num); //总菜单
void printfp(FILE *fp);                         //打印节点
void memorysearch(Str words[],FILE *fp);        //记录每一个单词
int writein(Str words[],int *num);              //写入新文件
void printfword(int *num,Str words[]);          //输出结构体数组
void Sortmenu(Str words[],int *num);            //排序菜单
void wordsort1(Str words[],int *num);           //结构体数组排序1
void wordsort2(Str words[],int *num);           //结构体数组排序2
void searchmenu(Str words[],int *num);          //查找菜单
void findword(Str words[],int *num);            //单词找数 1
void findwords(Str words[],int *num);           //数找单词 2
void replaceword(Str words[],int *num);         //单词替换(未实现单词的文本替换)
int writenewtxt(Str words[],int *num);          //写入文本函数
int addnewword(FILE*fp,Str words[],int *num);   //添加单词函数
int deleteword(FILE*fp,Str words[],int *num);   //删除内容函数
void printfmenu();                              
void printfmenu2();
void printfmenu3();
void insertkey();


void endscan()       //结果观看函数
{
	printf("\n点击回车继续...");
	fflush(stdin);
	getchar();
}


int search(FILE *fp,Str words[],int *num) 
{
	char tmp[50]; 
	int n=0;       
	int s=0;       
	int i,j,neww=1;  //neww标志位,判断是否为新单词 

	while ( fscanf(fp,"%s",tmp)!=EOF )          //fscanf从文件中获取单个字符串
	{
		for(j=0;tmp[j]!='\0';j++)               //清除符号
		{
			if(tmp[j]==','||tmp[j]=='.'||tmp[j]==':'||tmp[j]=='"'||tmp[j]=='!'||tmp[j]=='//'||tmp[j]=='\\')//英文标点
				tmp[j]='\0';                    // 如果文本符号没有分隔开,会出错
		}

		neww=1;
		for (i=0; i<n; i++) 
		{
			if ( strcmp(tmp, words[i].str)==0 ) //重复的单词
			{
				neww=0;
				words[i].cnt++;
			}
		}
		if (neww)
		{
			for (j=0; tmp[j]!='\0'; j++)        // 复制字符串
			{
				words[n].str[j] = tmp[j];
			}
			words[n].str[j] = '\0';           //单词末尾添加结束符 
			words[n++].cnt = 1;               // 新单词数量+1 
		}
	}

	for (i=n-1; i>=0; i--)                    //单词出现次数
	{
		s+=words[i].cnt;
	}

	num[0]=n;
	num[1]=s;
	return *num;
}

int memorysearch(Str words[],FILE *fp,int*num) //未完成
{
	char tmp[50]; 
	int n=0;       
	int s=0;       
	int j,k; 
	num[2]=0;
	while ( fscanf(fp,"%s",tmp)!=EOF )          //fscanf从文件中获取单个字符串
	{
		for (j=0; tmp[j]!='\0'; j++)        // 复制字符串
		{
			words[n].str[j] = tmp[j];
			if(tmp[j+1]==','||tmp[j+1]=='.'||tmp[j+1]==':')
			{
				words[n].str[j+1]='\0';
				words[n+1].str[0]=tmp[j+1];
				words[n+1].str[1]='\0';
				n++;
				k=j;
				break;
			}
		}
		words[n].str[j++]='\0';            //太难了
		n++;		
	}
	num[2]=n;
	return *num;
}

void printfp(FILE *fp)
{
	char str[100];                  //储存字符串
	while(!feof(fp))  
	{          
	memset(str,0, sizeof(str));                 
	fgets(str,sizeof(str) - 1, fp); // 包含了换行符          
	printf("%s",str);      
	}
}


void printfword(int *num,Str words[]) //输出结构体数组
{
	printf("\n一共%d个不同的单词,共出现次数%d,每个单词出现次数如下:\n",num[0],num[1]);
	for (int i=num[0]-1; i>=0; i--) 
	{
		printf("%-20s\t%3d\n", words[i].str, words[i].cnt);
	}
}


void wordsort1(Str words[],int *num) //结构体数组排序1
{
	int i,j;
	int temp;
	char s[20];
	for(i=0;i<num[0]-1;i++)
	{
		for(j=0;j<num[0]-1-i;j++)
		{
			if(words[j].cnt < words[j+1].cnt)
			{
				temp = words[j].cnt;
				words[j].cnt = words[j+1].cnt;
				words[j+1].cnt = temp;

				strcpy(s,words[j].str);
				strcpy(words[j].str,words[j+1].str);
				strcpy(words[j+1].str,s);
			}
		}
	}
}

void wordsort2(Str words[],int *num) //结构体数组排序2
{
	int i,j;
	int temp;
	char s[20];
	for(i=0;i<num[0]-1;i++)
	{
		for(j=0;j<num[0]-1-i;j++)
		{
			if(strcmp(words[j].str,words[j+1].str)<0)
			{
				temp = words[j].cnt;
				words[j].cnt = words[j+1].cnt;
				words[j+1].cnt = temp;

				strcpy(s,words[j].str);
				strcpy(words[j].str,words[j+1].str);
				strcpy(words[j+1].str,s);
			}
		}
	}
}

void findword(Str words[],int *num) //单词找数
{
	int n=0;//存所找单词的个数
	char str[30];
	printf("请输入需要查找的单词:");
	fflush(stdin);
	scanf("%s",str);
	for(int i=0;i<num[0];i++)
	{
		if(strcmp(str,words[i].str)==0)
		{
			n=words[i].cnt;
			break;
		}
	}
	if(n!=0)
		printf("\n%-10s 的出现个数为 %d\n",str,n);
	else
		printf("\n%-10s 没有找到\n",str);
}

void findwords(Str words[],int *num) //数找单词
{
	int n,flag=1;//输入的查找数 //flag
	printf("请输入需要查找的数量:");
	scanf("%d",&n);
	printf("数量为%d的单词有:\n",n);
	for(int i=0;i<num[0];i++)
	{
		if(words[i].cnt==n)
		{
			printf("%s\n",words[i].str);
			flag=0;
		}
	}
	if(flag)
		printf("其实出现次数为%d的单词一个也没有\n",n);
}

void replaceword(Str words[],int *num) //单词替换(未实现单词的文本替换)
{
	int n=0;
	char str1[30],str2[30];
	printf("请输入替换前的单词:");
	fflush(stdin);
	scanf("%s",str1);
	printf("请输入替换后的单词:");
	fflush(stdin);
	scanf("%s",str2);
	for(int i=0;i<num[2];i++)
	{
		if(strcmp(str1,words[i].str)==0)
		{
			strcpy(words[i].str,str2);
			n++;
		}
	}
	if(n!=0)
		printf("\n%-10s 已经替换 %-10s\n",str1,str2);
	else
		printf("\n%-10s 没有找到\n",str1);
}

int writein(Str words[],int *num)
{
	FILE *fp3;
	if((fp3=fopen("textfile/wordtext2","w+"))==NULL)
	{
		printf("cannot open the file!\n");
		return 1;
	}
	int i;
	for(i=0;i<num[2];i++)
	{
		fprintf(fp3,"%s",words[i].str);
		fprintf(fp3,"%c",' ');
	}

	rewind(fp3);
	printf("文件内容输入如下;\n");
	printfp(fp3);
	printf("\n添加成功!\n");
	fclose(fp3);

}

int writenewtxt(Str words[],int *num)//写入文本函数
{
	FILE *fp2;
	if((fp2=fopen("textfile/wordtext","a+"))==NULL)
	{
		printf("cannot open the file!\n");
		return 1;
	}
	printf("请输入需要写入的文本:\n");
	char str[1024];
	fflush(stdin);
	gets(str);

	for(int i=0;i<=strlen(str);i++)
	{
		str[strlen(str)+1-i]=str[strlen(str)-i];
	}
	str[0]=' ';
	str[strlen(str)+2]='\0';

	fprintf(fp2,"%s",str);

	rewind(fp2);
	printfp(fp2);
	printf("\n添加成功!\n");
	fclose(fp2);
}

int addnewword(FILE*fp,Str words[],int *num)//添加单词函数
{
	FILE *fp2;
	if((fp2=fopen("textfile/wordtext","a+"))==NULL)
	{
		printf("cannot open the file!\n");
		return 1;
	}
	printf("请输入添加的单词:");
	char str[30];
	fflush(stdin);
	gets(str);

	for(int i=0;i<=strlen(str);i++)
	{
		str[strlen(str)+1-i]=str[strlen(str)-i];
	}
	str[0]=' ';
	str[strlen(str)+2]='\0';

	fprintf(fp2,"%s",str);

	rewind(fp2);
	printfp(fp2);
	printf("\n添加成功!\n");
	fclose(fp2);}

int deleteword(FILE*fp,Str words[],int *num)//删除函数
{
	FILE *fp2;
	if((fp2=fopen("textfile/wordtext","a+"))==NULL)
	{
		printf("cannot open the file!\n");
		return 1;
	}
	char str[50];
	printf("请输入需要删除的单词:");
	fflush(stdin);
	gets(str);
	int flag = 0;
	for(int i=0;i<num[2];i++)
	{
		if(strcmp(str,words[i].str)==0)
		{
			memset(words[i].str,0,strlen(words[i].str));
			flag = 1;
		}
	}
	if(flag==1)
		printf("\n删除成功!\n");
	fclose(fp2);
}

void printfmenu()
{
	printf("---------------------------------------------\n");
	printf("         <单词的查找与替换> 2.0              \n");
	printf("---------------------------------------------\n");
	printf("     | <1> 输出文档内容  (wordtext)        \n");
	printf(" 查找| <2> 输出扫描的单词(wordtext)        \n");
	printf("     | <3> 单词排序      (wordtext)        \n");
	printf("     | <4> 单词数量查找  (wordtext)        \n");
	printf("     | <5> 加载文件      (wordtext)        \n");
	printf("     | <6> 写入文件      (wordtext)        \n");
	printf("     | <7> 添加单词      (wordtext)        \n");
	printf("                                             \n");
	printf("     | <8> 删除单词       (wordtext2)      \n");
	printf(" 替换| <9> 文件内容整理   (wordtext2)      \n");
	printf("     | <10> 替换单词      (wordtext2)      \n");
	printf("     | <11> 写入文件      (wordtext2)      \n");
	printf("---------------------------------------------\n");
	printf("      <0> 退出                               \n");
	printf("---------------------------------------------\n");
	printf("请选择:");
}

void printfmenu2()
{
	printf("-----------------------------\n");
	printf("           单词排序          \n");
	printf("-----------------------------\n");
	printf("                             \n");
	printf("      <1>个数排序            \n");
	printf("      <2>单词排序            \n");
	printf("      <0>返回菜单            \n");
	printf("-----------------------------\n");
	printf("请选择:");
}

void Sortmenu(Str words[],int *num)
{
	system("cls");
	printfmenu2();
	int a;
	scanf("%d",&a);
	switch(a)
	{
	case 0:
		break;
	case 1:
		wordsort1(words,num);
		insertkey();
		break;
	case 2:
		wordsort2(words,num);
		insertkey();
		break;
	}
}

void printfmenu3()
{
	printf("-----------------------------\n");
	printf("       单词数量查找          \n");
	printf("-----------------------------\n");
	printf("                             \n");
	printf("   <1>查找一个单词的数量     \n");
	printf("   <2>查找相同数量的单词     \n");
	printf("   <0>返回菜单               \n");
	printf("-----------------------------\n");
	printf("请选择:");
}

void searchmenu(Str words[],int *num)
{
	system("cls");
	printfmenu3();
	int a;
	scanf("%d",&a);
	switch(a)
	{
	case 0:
		break;
	case 1:
		findword(words,num);
		break;
	case 2:
		findwords(words,num);
		break;
	}
}

void insertkey()
{
	printf("\t\t加载中...\n");
	Sleep(2000);
	printf("\t\t加载成功!\n");
	Sleep(1000);
}

void selectmenu(FILE*fp,Str words[],Str words2[],int *num)
{
	int v=0;
	while(v!=1)
	{
		int s;
		int i,j;
		printfmenu();            //打印菜单
		printf("请输入选项:");
		scanf("%d",&s);
		switch(s)
		{
			case 0:
				v=1;
				break;
			case 1:
				printfp(fp);     //输出文档内容
				rewind(fp);      //输出之后从头开始
				break;
			case 2:
				printfword(num,words);
				break;	
			case 3:
				Sortmenu(words,num);
				break;
			case 4:
				searchmenu(words,num);
				break;
			case 5:
				fp = fopen("textfile/wordtext", "r"); 
				search(fp,words,num);    //查找单词写入结构体
				rewind(fp);
				insertkey();
				break;
			case 6:
				writenewtxt(words,num);
				break;
			case 7:
				addnewword(fp,words2,num);
				break;
			case 8:
				deleteword(fp,words2,num);
				for(i=0;i<num[2];i++)
				{
					for(j=0;words2[i].str[j]!='\0';j++)
					{
						printf("%c",words2[i].str[j]);
					}
					printf(" ");
				}
				break;
			
			case 9:
				*num=memorysearch(words2,fp,num);
				rewind(fp);
				for(i=0;i<num[2];i++)
				{
					for(j=0;words2[i].str[j]!='\0';j++)
					{
						printf("%c",words2[i].str[j]);
					}
					printf(" ");
				}
				break;
			case 10:
				replaceword(words2,num);
				for(i=0;i<num[2];i++)
				{
					for(j=0;words2[i].str[j]!='\0';j++)
					{
						printf("%c",words2[i].str[j]);
					}
					printf(" ");
				}
				break;
			case 11:
				writein(words2,num);
				break;
			default:printf("输入错误!\n");
		}
		if(v!=1)
		{
			endscan();
			system("cls");
		}
	}
}

int main()                  //主调函数
{
	FILE *fp;
	int num[3]={0,0,0};       //实际单词数量 //单词出现次数
	Str words[1000];        //单词数量上限
	Str words2[1000];

	if((fp = fopen("textfile/wordtext", "r"))==NULL)
	{
		printf("cannot open the file!\n");
		endscan();
		return 0;
	}
	search(fp,words,num);   //查找单词写入结构体
	rewind(fp);
	selectmenu(fp,words,words2,num);//菜单选择
	fclose(fp);
	return 0;
}

【Python 百炼成钢】错位键盘、单词的长度、字母重排(1) n+=1三、字母重排🚩🪐问题描述输入一个字典(*****结尾),然后再输入若干单词。每输入一个单词w,你都需要在字典中找出所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出(如果不存在,输出:0。输入单词之间用空格或空行隔开,且所有输入单词都由不超过6个小写字母组成。注意,字典中的单词不一定按字典序排列。样例输入:第一行 tarp given score refund only trap work earn course pepper part。 阅读详情

相关推荐

C语言程序设计 实现单词替换

用C语言实现在英文文章中查找特定单词,并且予以替换的程序

替换单词c语言程序,用c语言完成单词替换

匿名用户1级2014-05-21 回答按照自己的理解写了一段代码,请根据自己需要进行修改。*查找单词有空格或非字母时给出警告*替换单词有空格或非字母时给出警告*语句中标点可以同单词没有空格#include <stdio.h>#include <string.h>#define STRLEN 100int main(){char content[STRLEN];char ne...

weixin_34293588的博客 2916

【Collibra 驱动 IPD 数据血缘治理】:三层图谱分层展示体系与全链路追踪的技术业务实践

(应用级/数据级/字段级)是理解复杂数据流动的核心手段。其价值不仅体现在可视化的直观性,更在于通过。技术保障血缘不可篡改性,进一步提升IPD数据治理的可靠性。,解决了跨层级血缘分析的性能与可用性矛盾。数据血缘图谱要素定义(字节跳动/腾讯云/信安标委)实现对IPD数据的精准追踪,而数据血缘图谱的。分层交互设计标准(智慧城市数据中台规范)Collibra技术文档(2024)字段级血缘的挑战与解决路径。自动优化血缘路径,并深化。字段级血缘技术实现方案。Collibra通过。图数据库性能优化原理。

百态·数智思维 | 聚焦大数据、量化与未来AI 1244

单词替换(C语言)

描述 输入一个字符串,以回车结束(字符串长度

qq_75209943的博客 1597

22版本Altium Designer导出生产文件的规范化操作指南

本文详细介绍了PCB设计中的Gerber文件导出流程及相关文件生成方法。主要内容包括:1)Gerber文件导出的5个关键设置步骤;2)NC钻孔文件的导出方法;3)坐标文件的生成方式;4)文件打包规范要求必须包含Gerber文件、NC钻孔文件和坐标文件;5)文件提交的两种方式(新手推荐提交原始工程文件,量产推荐仅提交Gerber文件包)。文章还特别强调了单位一致性、精度验证等注意事项,为PCB设计文件的规范输出提供了完整指导。

qq_56506325的博客 1058

Chatbox使用指南

Chatbox使用指南

weixin_65289420的博客 2万+

数据结构(c++)--map划分词典的相似单词

这次分享一下看到的一个map对于相似单词的划分的示例。         首先,我们需要一个存放了很多单词的字典,在上一篇博客中,我已经做好了相关的处理 ,可以参考点击打开链接。         下面我们切入正题。          在我们所用过的英文单词中,许多单词都和其它的单词是相似的,而这些往往记忆起来是特别头疼的,大家都懂的。例如,对于单词wine,替换第一个字母,可以有dine、fi

陌上行走的博客 3279

SQLite → PostgreSQL 迁移脚本与踩坑清单

本文提供了SQLite迁移到PostgreSQL的两种可靠路径:首选使用pgloader工具自动转换schema和数据,支持类型映射和并行复制;备选方案通过sqlite3导出CSV再用PostgreSQL的COPY命令导入,适合需要自定义清洗的场景。重点介绍了数据类型映射规则、迁移步骤、校验方法和常见问题,包括自增主键、布尔值、时间类型等关键差异处理。迁移后需进行行数核对、哈希抽样等校验,并给出了性能优化建议。最后强调迁移不仅是数据转移,更需要同步升级数据模型和索引策略,根据业务场景选择合适的数据库方案。

aifs2025的博客 1886

单词替换(C/C++)

简单语法练习-字符串单词替换

m0_74012728的博客 3280

【YOLOv11工业级实战】15. YOLOv11海洋监测实战:珊瑚礁健康评估(水下图像增强|机器人搭载)

摘要:本文针对珊瑚礁健康评估的海洋监测需求,基于YOLOv11提出解决方案,聚焦水下色偏、悬浮物干扰、珊瑚形态复杂三大难题。引用全球珊瑚礁监测网络(GCRMN)标准,采用CoralNet数据集,通过Jaffe-McGlamery物理模型引导增强与悬浮物去除算法,在浑浊水域(能见度<5m)实现87.3%的健康珊瑚识别率,藻类误判率低至7.2%。介绍了以BlueROV2水下机器人和Jetson AGX Orin为核心的部署方案,结合水下SLAM定位技术,实现珊瑚健康的实时评估与三维覆盖率计算。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1644

【目标检测】全局上下文感知的详解

目标检测中的全局上下文感知(Global Context Awareness)​是指模型在定位和识别目标时,能够有效利用图像中全局或大范围的上下文信息(如场景语义、目标间关系、空间布局等),而不仅仅依赖局部特征。这种能力显著提升了检测的鲁棒性,尤其是在复杂场景(如遮挡、小目标、密集目标)中表现突出。

浩瀚之水的专栏 645

C语言实现在英语句子查找和替换一个单词。

用C语言实现从字符串中读取存在单词的位置,并替换成别的单词。 注意: 1、该程序被替换的是单个单词,而不是单词里的字符,如替换"like"里的'i'为'u'。 效果图如下: 2、被替换的不能是多个单词的组合,如替换"like you"为"hate you"。 效果图如下: 3、被替换的单词只能是单个单词,如替换"like you"里的"you"为

徒步青云的博客 1万+

Matlab在线性代数中的应用(一):向量组的线性相关性

求列向量组A的一个最大线性无关组可用命令rref(A)将A化成行最简形,其中单位向量对应的列向量即为最大线性无关组所含向量,其它列向量的坐标即为其对应向量用最大线性无关组线性表示的系数。 01 — 例1 求下列矩阵列向量组的一个最大无关组。 解:编写脚本文件如下: >>format rat a=[1,-2,-1,0,2;-2,4,2,6,-6;2,-1,0,2,3;3,3,3,3,4]; b=rref(a) 求得: b...

wenyusuran的专栏 3237

问题 D: 单词替换

问题 D: 单词替换 时间限制:1 Sec内存限制:32 MB 提交:852解决:249 [提交][状态][讨论版][命题人:外部导入] 题目描述 输入一个字符串,以回车结束(字符串长度&lt;=100)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。 输入 多组数据。每组数据输入包括...

ActionBeam的博客 593

如何在 UniApp 中接入讯飞语音听写功能 文末附vue3+vue2完整代码

在开发过程中,我遇到了讯飞接口返回空数据的问题。通过仔细检查传送的每一帧数据,我发现问题出在第一帧的配置信息以及 Base64 数据的切片。确保每一帧的数据正确且符合接口要求,问题就能够得到解决。希望这个过程能帮助你在项目中顺利对接讯飞语音识别。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 997

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

串的查找和替换课程设计c语言,(串的查找和替换.doc

(串的查找和替换计算机工程学院实 习 报 告课程名称:算法设计技能训练设计题目: 串的查找和替换院 系: 计算机工程学院专 业: 计算机科学与技术(单招)学生姓名: 高苏生 学 号: 1131308432起止日期: 2015年1月5日 ~ 2015 年1月12日指导教师: 严云洋 张亚红学年学期: ...

weixin_28952633的博客 1194

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C语言题目单词有多少,题目 - 例题(12.8) 单词替换 C语言

共回答了23个问题采纳率:87%#include#include#include#define MAX 1000#define LEN 20void Input (char *a, char *b, char *c){gets(a);gets(b);gets(c);}void Swap (char *str, char *FindWord, char *SwapWord){int j,s,k,i=...

weixin_39928940的博客 315

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

单词替换

功能:替换一篇文章中指定的错误单词。 //文字处理(将句中出现的所有错词修改正确) #include<stdio.h> #include<string.h> int change(char *sentence, char *wrong, char *correct); int main(void) { char sentence[1000],wrong[20...

HUSTER_Gy的博客 377

890. 查找和替换模式

输入:words = [“abc”,“deq”,“mee”,“aqq”,“dkd”,“ccc”], pattern = “abb”如果存在字母的排列 p ,使得将模式中的每个字母 x 替换为 p(x) 之后,我们就得到了所需的单词,那么单词与模式是匹配的。(回想一下,字母的排列是从字母到字母的双射:每个字母映射到另一个字母,没有两个字母映射到同一个字母。“ccc” 与模式不匹配,因为 {a -> c, b -> c, …“mee” 与模式匹配,因为存在排列 {a -> m, b -> e, …

weixin_43327597的博客 129

pta浙大版《C语言程序设计(第四版)》题目集参考答案四(编程题)(共五部分)

练习6-3---练习7-11

2301_80013019的博客 6540

剑指 Offer II 063. 替换单词 -c语言空间效率最高算法

剑指 Offer II 063. 替换单词 -c语言空间效率最高算法 在英语中,有一个叫做 词根(root) 的概念,它可以跟着其他一些词组成另一个较长的单词——我们称这个词为 继承词(successor)。例如,词根an,跟随着单词 other(其他),可以形成新的单词 another(另一个)。 现在,给定一个由许多词根组成的词典和一个句子,需要将句子中的所有继承词用词根替换掉。如果继承词有许多可以形成它的词根,则用最短的词根替换它。 需要输出替换之后的句子。 示例 1: 输入:dictionary =

weixin_43327597的博客 306

字符串作业(3)

1、替换字符 给定一个由大小写字母构成的字符串。把该字符串中特定的字符全部用字符 # 替换。请你输出替换后的字符串。 输入格式 输入共两行。 第一行包含一个长度不超过 30 的字符串。第二行包含一个字符,表示要替换掉的特定字符。 输出格式 输出共一行,为替换后的字符串。 输入样例: hello l 输出样例: he##o 2、忽略大小写比较字符串大小 一般我们用 strcmp 可比较两个字符串的大小,比较方法为对两个字符串从前往后逐个字符相比较(按 ASCII 码值大小比较),直到出现不同的字符或遇到 \0

weixin_48107938的博客 1090

ZOJ-3056

这题周末的时候用JAVA写狂RE,

xhldtc的专栏 764
上一篇: C语言 推箱子游戏
下一篇: C语言 链表数据的排序
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值