strtok作业
以下为我们手机收到短信的形式,请利用指针数组与strtok函数对其解析
char msg src[]="+CMGR:REC UNREAD,+86 13466630259,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
时间:ABCdefGHI
*/#include <stdio.h>
#include <string.h>
#pragma warning(disable:4996)
int msg_deal(char* msg_src, char* msg_done[], char* str);
{
int i = 0;
msg_done[i] = strtok(msg_src, ",");
while (msg_done[i]! = NULL)
{
i++;
msg_done[i] = strtok(NULL, str);
}
return i;}
int main()
{
char s[100]="+CMGR:REC UNREAD,+86 13466630259,98/10/01,18:22:11+00,ABCdefGHI";
char* p[6];//指针数组的第五号元素要接受NULL值,必然会造成内存污染
int num,i;
num=msg_deal(s,p,","); printf("num=%d\n", num);
for (i = 0; i < num; i++)
{
printf("p[%d]=%s\n", i, p[i]);
}
return 0;
}/*结果num = 5
p[0]=+CMGR:REC UNREAD
p[1]=+86 13466630259
p[2]=98/10/01
p[3]=18:22:11+00
p[4]=ABCdefGHI