strtok函数实现一直出现写入冲突有关问题
strtok函数实现一直出现写入冲突问题
想实现下strtok函数,在while循环中会出现写入冲突,这个错误时怎么回事?求指导
------解决方案--------------------
char *str ="asdf,dsgfsd,dsfhs";
改用数组的
------解决方案--------------------
int main(){
char *str ="asdf,dsgfsd,dsfhs";
*str = '\0';
return 0;
}
一定出错的 char *str 为只读的不可写
------解决方案--------------------
这里的判断应该是这样写吧:
其他地方没看,呵呵。
------解决方案--------------------
char *str ="asdf,dsgfsd,dsfhs";字符串内存是不能修改的 可以动态分配或者用数组搞定
------解决方案--------------------
if(*str == NULL) /////
str = sstr;
if(*str == NULL) /////
return NULL;
确实基础还要加强啊.
你这里是相判断指针, 应该用 str == NULL,
*str表示对指针解引用了. 注意同定义指定变量时的*加以区别.
#include <stdlib.h>
#include <stdio.h>
char* strtok1(char *str, const char *delim)
{
static char *sstr ;
static char *s1, *s2;
if(*str == NULL)
str = sstr;
if(*str == NULL)
return NULL;
s1 = str;
while(*str!= '\0')
{
if(*str == *delim)
{
*str = '\0';
sstr = str + 1;
break;
}
str++;
}
return s1;
}
int main()
{
char *str ="asdf,dsgfsd,dsfhs";
char *str1 = strtok1(str, ",");
char* str2 = strtok1(NULL, ",");
}
想实现下strtok函数,在while循环中会出现写入冲突,这个错误时怎么回事?求指导
c
------解决方案--------------------
char *str ="asdf,dsgfsd,dsfhs";
改用数组的
------解决方案--------------------
int main(){
char *str ="asdf,dsgfsd,dsfhs";
*str = '\0';
return 0;
}
一定出错的 char *str 为只读的不可写
------解决方案--------------------
这里的判断应该是这样写吧:
if (/***/str == NULL) str = sstr;
if (/***/str == NULL) return NULL;
其他地方没看,呵呵。
------解决方案--------------------
char *str ="asdf,dsgfsd,dsfhs";字符串内存是不能修改的 可以动态分配或者用数组搞定
------解决方案--------------------
if(*str == NULL) /////
str = sstr;
if(*str == NULL) /////
return NULL;
确实基础还要加强啊.
你这里是相判断指针, 应该用 str == NULL,
*str表示对指针解引用了. 注意同定义指定变量时的*加以区别.