⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getelement.cpp

📁 霍夫曼编码
💻 CPP
字号:
#include "StdAfx.h"

void getletter(char * in)
{
	char choice;
	int flag = 1;
	
	printf("请输入一段字符:");
	do
	{
		fflush(stdin);
		gets(in);
		//去除字符中的空格

		for(unsigned i = 0;i < strlen(in);i++)
		{
			if(in[i] == ' ')
			{
				for(unsigned int j = i;j < strlen(in);j++)
					in[j] = in[j+1];
				i--;
			}
		}
/*--------------除去字符串首的空格-----------------
		while (in[0] == ' ')
		{
			for(unsigned i = 0;i < strlen(in);i++)
				in[i] = in[i+1];
		}
----------------------------------------------------*/
		//处理只输入回车的情况
		if (strlen(in) == 0)
		{
			printf("您未输入有效字符,是否重新输入(Y/N):");
			scanf("%c",&choice);
			while(choice!='y' && choice!='n' && choice!='Y' && choice!='N')
			{
				printf("选择错误,请重新选择(Y/N)");
				fflush(stdin);
				scanf("%c",&choice);
			}
			if (choice == 'Y' || choice == 'y')
				printf("请输入一段字符:");
			else
				exit(1);
		}
		//不是只有回车时
		else
			flag = 0;
	}while (flag == 1);
}

//求取各个字符的权重,储存在w[26]中
void getweight(char * in,char * letter,int * w,int * n)
{
	unsigned int i,j;
	
	//将字符串中的大写变为小写
	for (i = 0; i < strlen(in);i++)
		in[i] = tolower(in[i]);

	//将第一个是字母的字符赋给letter[0]
	for (i = 0;i < strlen(in);i++)
	{
		if((in[i] > 64 && in[i] < 91)||(in[i] > 96 && in[i] < 123))
		{
			letter[0] = in[i];
			break;
		}
	}
	* n = 1;
	w[0] = 1;
	//赋值并计录各个字符的个数
	for (i = 1;i < strlen(in); i++)
	{
		if((in[i] > 64 && in[i] < 91)||(in[i] > 96 && in[i] < 123))
		{
			for (j = 0;j < strlen(letter); j++)
			{
				if(in[i] == letter[j])
				{
					w[j]+=1;
					break;
				}
			}
			if(j == strlen(letter))
			{
				letter[j] = in[i];
				w[j]++;
				(*n)++;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -