我对题目的理解:
单词首地址:单词首字母下标
假设单词只由英文字母和阿拉伯数字组成
先在x.txt中输入字符串:
例如:
ajfljfljalf afjalfjlaf ,.. afjadfiw
adfkdsf
afddfj d f e fa d g afafadf
结果:
0 14 30 39 47 54 56 58 60 63 65 68
total:12
/*
题目: 记录句中单词的首地址
要求:在x.txt文件中给出10个字符串(10个句子),用程序读入,找出每个单词的首地址,同时计算单词个数,输出到屏幕上后,再
输出到x1.txt文件中。
*/
#include
#include
char Buffer[2000]; //在字符串不大的情况下没问题
void ReadFile()
{
int i;
char ch;
FILE *fp;
fp=fopen("x.txt","r");
if(!fp)
{
printf("Can not open the file!\n");
exit(0);
}
for(i=0;(ch=fgetc(fp))!=EOF;i++)
Buffer[i]=ch;
Buffer[i]='\0';
fclose(fp);
return ;
}
int IsStr(char ch)
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z')||(ch>='0'&&ch<='9')) return 1;
else return 0;
}
void CreateFile()
{
int i=0,count=0;
char ch;
FILE *fp2;
fp2=fopen("x1.txt","w");
if(!fp2)
{
printf("Can not open the file!\n");
exit(0);
}
while(Buffer[i]!='\0')
{
if(IsStr(Buffer[i]))
{
fprintf(fp2,"%d\t",i);
count++;
for(;IsStr(Buffer[i]);i++);
}
i++;
}
fprintf(fp2,"\ntotal:%d\n",count);
fclose(fp2);
return ;
}
int main()
{
ReadFile();
CreateFile();
printf("哈哈,去看看你的x1.txt吧!\n");
return 0;
}
十进制转二进制:
例如:75
75/2=37余1
37/2=18余1
18/2=9余0
9/2=4余1
4/2=2余0
2/2=1余0
1/2=0余1
将得到的一系列的余数倒过来书写就得到该数所对应的二进制数1001011