当前位置: 技术问答>linux和unix
请教strsep函数
来源: 互联网 发布时间:2016-12-05
本文导语: #include #include #include int main(void) { char *eaddr=NULL; char *RecvMsg = "00010203_20010203"; eaddr = strsep(&RecvMsg,"_"); printf("eaddr = %sn",eaddr); printf("RecvMsg = %sn",RecvMsg); return 0; } 执行出现段错误,请问怎么回事?谢谢啦! ...
#include
#include
#include
int main(void)
{
char *eaddr=NULL;
char *RecvMsg = "00010203_20010203";
eaddr = strsep(&RecvMsg,"_");
printf("eaddr = %sn",eaddr);
printf("RecvMsg = %sn",RecvMsg);
return 0;
}
执行出现段错误,请问怎么回事?谢谢啦!
#include
#include
int main(void)
{
char *eaddr=NULL;
char *RecvMsg = "00010203_20010203";
eaddr = strsep(&RecvMsg,"_");
printf("eaddr = %sn",eaddr);
printf("RecvMsg = %sn",RecvMsg);
return 0;
}
执行出现段错误,请问怎么回事?谢谢啦!
|
char *RecvMsg = "00010203_20010203";
改为数组
char RecvMsg[] = "00010203_20010203";
strsep会修改第一个参数
改为数组
char RecvMsg[] = "00010203_20010203";
strsep会修改第一个参数
|
char *ptr = "hello world";
和const char *ptr = "hello world"其实是等效的。
所以。你是没办法修改ptr指向字符串的。
这里也就是你RecvMsg的问题。
而strsep最大的缺陷也就是会修改第一个参数的内容
正确修改方案按照LS的,先换成数组。
和const char *ptr = "hello world"其实是等效的。
所以。你是没办法修改ptr指向字符串的。
这里也就是你RecvMsg的问题。
而strsep最大的缺陷也就是会修改第一个参数的内容
正确修改方案按照LS的,先换成数组。