Bootstrap

以下为我们的手机收到的短信的格式,请利用指针数组与 strtok 函数对其解析

//  以下为我们的手机收到的短信的格式,请利用指针数组与 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;

}

;