/********************************
有函数: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码,如何将这个数字输出(如1的ascii码是“49”,a = 49如何输出1)。
printf(“%d”, a – ‘0’);
结果:1
2、 定义的数组太多
可以定义一个多维数组,将不同段的内容存到多维数组里。