// 以下为我们的手机收到的短信的格式,请利用指针数组与 strtok 函数对其解析
// char msg_src[]="+CMGR:RECUNREAD,+8613466630259,98/10/01,18:22:11+00,ABCdefGHI";
// 参考以下的函数名字以及参数,完成相应的要求
// int msg_deal(char *msg_src, char *msg_done[],char *str)
// 参数 1:待切割字符串的首地址
// 参数 2:指针数组:存放切割完字符串的首地址
// 参数 3:切割字符
// 返回值:切割的字符串总数量
// 手机号:13466630259
// 日期:98/10/01
// 时间:18:22:11
// 内容:ABCdefGHI
#include <stdio.h>
#include <string.h>
// 定义函数:
int msg_deal(char *msg_src, char *msg_done[], char *str)
{
msg_done[0] = msg_src;
int i = 0;
while (1)
{
msg_done[i] = strtok(msg_done[i], ","); // strtok返回的是切割到的字串的首元素地址
if (msg_done[i] == NULL)
{
break;
}
i++;
}
return i;
}
void test00()
{
char msg_src[] = "+CMGR:RECUNREAD,+8613466630259,98/10/01,18:22:11+00,ABCdefGHI";
char *msg_done[32] = {NULL};
// 调用函数
int ret = msg_deal(msg_src, msg_done, ",");
// 设置样式输出结果
printf("字符串总数为:%d\n", ret);
printf("手机号:%s\n", msg_done[1] + 3);
printf("日期: %s\n", msg_done[2]);
memset(strstr(msg_done[3], "+"), 0, strlen("+00"));
printf("时间: %s\n", msg_done[3]);
printf("内容:%s\n", msg_done[4]);
}
int main(int argc, char const *argv[])
{
test00();
return 0;
}