#include<stdio.h>
#include<stdlib.h>
int jisuan(char c[])//计算数组中实际不重复个数
{
char ch;//中间变量
int len;//实际不重复个数
int n=0;//总个数
int i,j;
for(i=0;c[i]!='\0';++i)//计算数组中总共存放了多少字符
{
n++;
}
len=n;
for(i=0;i<255&&c[i]!='\0';i++)//对数组进行冒泡排序
{
for(j=i+1;j<=255-1&&c[j]!='\0';j++)
{
if(c[i]>c[j])
{
ch=c[i];
c[i]=c[j];
c[j]=ch;
}
}
}
for (i = 0; i < n - 1; i++)//对有序的数组里面的不相同的字符进行统计
{
for (j = i + 1; j < n; j++)
{
if (c[j]==c[i])
{
// 重复,数组总长度减1
len--;
i++;
}
}
}
return len;
}
char * readfile()//从文件中读字符到数组里面,并把数组地址返回
{
FILE * fp=NULL;
char c[255];
fp=fopen("abc.txt","r");
if(fp==NULL)
{
printf("文件操作失败!");
exit(-1);
}
if(fscanf(fp,"%s",c))
{
printf("读取数据成功!");
puts(c);
}
return c;
}
int main()
{
int num;
char * cp;
cp=readfile();
num=jisuan(cp);
printf("文件中不重复的个数为%d",num);
return 0;
}
从文件中读字符并且计算不重复个数
最新推荐文章于 2022-01-15 21:19:55 发布