主函数main()中由数字和字母组成的字符串s为测试数据,程序 主要提取字符串s中由字符'$'分隔的不同八进制数形式的字符串, 将八进制数形式字符子串所对应的字符生成新的字符串

题目:主函数main()中由数字和字母组成的字符串s为测试数据,程序
      主要提取字符串s中由字符'$'分隔的不同八进制数形式的字符串,
      将八进制数形式字符子串所对应的字符生成新的字符串t;然后
      统计字符串t中所有数字子串对应整数的出现频率。
例如:字符串s为"101$062$063$114$066$110$062$063$141$071",处理
      后字符串t为"A23L6H23a9",其中"23"对应整数23出现频率为2,
      "6"和"9"对应整数出现频率为1。
编写程序:
    1. 编写函数void GenStr(char s[],char t[]),计算字符串s中不同
       八进制数形式的字符子串,将每个八进制数形式字符子串所对应
       的字符保存在字符数组t中。

    2. 编写函数int CountFreq(char t[],int b[],int Freq[]),统计
       字符数组t中不同数字子串对应整数出现频率,不同整数保存在
       整数数组b中,出现频率保存在整数数组Freq中,函数返回整数个
       数。
    

#include
#include
#include
#include
#include
#define N 10
void  GenStr(char s[],char t[])
{
/**********Program**********/
    int i,sum,k=0;
 for(i=0;s[i]!='\0';)
   {
     sum=0;
  if(s[i]>='0'&&s[i]<='9')
  {
    while(s[i]>='0'&&s[i]<='9')
    {
       sum=sum*8+s[i]-'0';
    i++;
    }
    t[k++]=sum;
  }
  else
   i++;
   }
t[k]='\0';
/**********  End  **********/
}
int CountFreq(char t[],int b[],int Freq[])
{
/**********Program**********/
    int i,sum,j=0,m,n=0;
 for(i=0;t[i]!='\0';)
 {
    sum=0;
    if(t[i]>='0'&&t[i]<='9')
    {
       while(t[i]>='0'&&t[i]<='9')
    {
       sum=sum*10+t[i]-'0';
    i++;
    }
    a[j++]=sum;
    }
    else
     i++;
 }
   b[k++]=a[0];
   for(i=1;i     for(m=0;m      if(a[i]==b[m])
      Freq[n]++;
     else
      b[k++]=a[i];
     

/**********  End  **********/
}
int main()
{
    char s[]="101$062$063$114$066$110$062$063$141$071";
    char t[N]="";
    int b[N]={0},Freq[N]={0};
    int num=0,i=0;
    FILE *fp;
    if((fp=fopen("DATA.TXT","w"))==NULL)
    {
        printf("File open error\n");
        exit(0);
    }
    GenStr(s,t);
    printf("The string t is: %s\n",t);
    fprintf(fp,"The string t is: %s\n",t);
    num=CountFreq(t,b,Freq);
    printf("The different integer and frequency is: ");
    fprintf(fp,"The different integer and frequency is: ");
       
    for(i=0;i     {
        printf("[%d: %d] ",b[i],Freq[i]);
        fprintf(fp,"[%d: %d] ",b[i],Freq[i]);
    }
    printf("\n");
    fprintf(fp,"\n");
    fclose(fp);
   
    return 0;
}


你可能感兴趣的:(主函数main()中由数字和字母组成的字符串s为测试数据,程序 主要提取字符串s中由字符'$'分隔的不同八进制数形式的字符串, 将八进制数形式字符子串所对应的字符生成新的字符串)