链表例题

/********************************

有函数:int parseSoundSetting(char *configure,stSoundSetting *setting)

把字符串 ID_SOUND_AAA_BBB_12V7R99W 匹配的结构体 struct _stSoundSetting

 

#define BUFF_LEN 100

#define AMP_NAME_LEN 10

#define MODEL_NAME_LEN 40

typedef struct _stSoundSetting

{

   char amplifier[AMP_NAME_LEN];

   char modelname[MODEL_NAME_LEN];

   int voltage;

   int impedance;

   int power;

}stSoundSetting;

 

例如:

    输入   ID_SOUND_AAA_BBB_12V7R99W

    输出   

    amplifier = AAA

    modelname = BBB

    voltage = 12 

    impedance = 7

    power = 99

*******************************/

 

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

 

#define BUFF_LEN 100

#define AMP_NAME_LEN 10

#define MODEL_NAME_LEN 40

 

typedef struct _stSoundSetting

{

   char amplifier[AMP_NAME_LEN];

   char modelname[MODEL_NAME_LEN];

   int voltage;

   int impedance;

   int power;

}stSoundSetting;

 

int parseSoundSetting(char *configure,stSoundSetting *setting)

{

   char strings[100];

   int V[10];

   int R[10];

   int W[10];

   int count = 0;

   int i = 0, j = 0;

   int v = 0, r = 0, w = 0;

 

   setting->voltage = 0;

   setting->impedance = 0;

   setting->power = 0;   

 

   printf("please input strings!\n");

   gets(strings);

   configure = strings;

 

   while(*configure != '\0')

    {

       if(*configure == '_')

       {

           count++;

           if(count == 2)

           break;

       }

       configure++;

    }

 

   configure++;

   while(*configure != '_')

    {

       setting->amplifier[i] = *configure;

       i++;

       configure++;   

    }

   configure++;

   while(*configure != '_')

    {

       setting->modelname[j] = *configure;

       j++;

       configure++;

    }

   configure++;

   while(*configure != 'V')

    {

       V[v] =*configure - '0';

       v++;

       configure++;

    }

   V[v] = '\0';

   configure++;

   while(*configure != 'R')

    {

       R[r] = *configure - '0';

       r++;

       configure++;

    }

   R[r] = '\0';

   configure++;

   while(*configure != 'W')

    {

       W[w] = *configure - '0';

       w++;

       configure++;

    }

   W[w] = '\0';

    v= 0;

    r= 0;

    w= 0;

   while(V[v] != '\0')

    {

       setting->voltage = setting->voltage*10 + V[v];

       v++;

    }

   while(R[r] != '\0')

    {

       setting->impedance = setting->impedance*10 + R[r];

       r++;

    }

   while(W[w] != '\0')

    {

       setting->power = setting->power*10 + W[w];

       w++;

    }

  

   /*********output***********/

   puts(setting->amplifier);

   puts(setting->modelname);

   printf("%d\n",setting->voltage);

   printf("%d\n",setting->impedance);

   printf("%d\n",setting->power);   

 

   return 0;

}

 

int main()

{

   stSoundSetting *L;

   char *p;

 

    L= (stSoundSetting *)malloc(sizeof(stSoundSetting));

   parseSoundSetting(p,L);

       

   return 0;

}

遇到的问题:

1、 知道一个数字的ascii码,如何将这个数字输出(如1ascii码是“49”,a = 49如何输出1)。

printf(“%d”, a – 0);

结果:1

2、 定义的数组太多

可以定义一个多维数组,将不同段的内容存到多维数组里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值