C语言做以下事情要如何做?

输入固定格式的字符串,其中随机包含1-3种数据信息(温度、湿度、光照度),每条字符串以 { } 为开头和结尾,每种信息开通包含一个 #,信息名称和信息数据以 : 隔开,例如:
{#temp:25#humi:50#illu:120} 代表温度为25,湿度为50,光照度为120,将输入的数据解析计算出距离上次输入的值变化了多少并输出。
例:第一次输入 {#temp:25#humi:50#illu:120}
第一次输出 temp:25 up25
humi:50 up50
illu:120 up120

第二次输入 {#temp:27#illu:110}

第二次输出 temp:27 up2
humi:50
illu:110 down10

第三次输入 {#illu:100#humi:60#temp:27}

第三次输出 temp:27
humi:50 up10
illu:100 down10

(终极解决方案)学会使用有限状态自动机进行词法分析。
(一般解决方案)学会使用正则表达式提取匹配子集。
(业余解决方案)学会字符串查找和提取子字符串函数。