结构体匹配问题

题目:有函数: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;
a int power;
}stSoundSetting;
例如:
    输入   ID_SOUND_AAA_BBB_12V7R99W
    输出   
     amplifier = AAA
     modelname = BBB
     voltage = 12 
     impedance = 7
     power = 99
#include <stdlib.h>
#include <stdio.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);
int main()
{
    stSoundSetting p;
    char configure[100];
  
   
    printf( "please input:\n" ); 
    scanf( "%s" ,configure);
    parseSoundSetting(configure,&p);
    printf( "%s\n" ,p.amplifier);
    printf( "%s\n" ,p.modelname);
    printf( "%d\n" ,p.voltage);
    printf( "%d\n" ,p.impedance);
    printf( "%d" ,p.power);
 
  
    return 0;
}
int parseSoundSetting( char *configure, stSoundSetting *setting)
{
    int i=0,j=0;
  
    setting->voltage=0;
    setting->impedance=0;
    setting->power=0;
    while (configure[i]!= '_' )
    {
        setting->amplifier[j]=configure[i];
        i++;
        j++;
    }
    i++;
    j=0;
    while (configure[i]!= '_' )
    {
        setting->modelname[j]=configure[i];
        i++;
        j++;
    }
    i++;
    j=0;
   
    while (configure[i]< '0' ||configure[i]> '9' )
    {
     i++;
    }
    while (configure[i]>= '0' &&configure[i]<= '9' )
    {
          setting->voltage=setting->voltage*10+(configure[i]-48);
          i++;
    }
    while (configure[i]< '0' ||configure[i]> '9' )
    {
        i++;
    }
    while (configure[i]>= '0' &&configure[i]<= '9' )
    {
        setting->impedance=setting->impedance*10+(configure[i]-48);
        i++;
    }
    while (configure[i]< '0' ||configure[i]> '9' )
    {
       i++;
    }
    while (configure[i]>= '0' &&configure[i]<= '9' )
    {
        setting->power=setting->power*10+(configure[i]-48);
        i++;
    }
    return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值