char *s和char s[]的问题。
#include <stdio.h>
#include <string.h>
int main()
{
char *s = "fdsf fdsf fds";
//char s[] = "fdsf fdsf fds";
const char *d = " ";
char *p;
p = strtok(s,d);
if(p)
printf("%s\n",p);
return 0;
}
为什么这样不可以,用char s[]就可以。
附上strtok
(2005-06-05 20:03:35) 天涯-晴空
函数名: strtok
功 能: 查找由在第二个串中指定的分界符分隔开的单词
用 法: char *strtok(char *str1, char *str2);
程序例:
#include <string.h>
#include <stdio.h>
int main(void)
{
char input[16] = "abc,d";
char *p;
/* strtok places a NULL terminator
in front of the token, if found */
p = strtok(input, ",");
if (p) printf("%s\n", p);
/* A second call to strtok using a NULL
as the first parameter returns a pointer
to the character following the token */
p = strtok(NULL, ",");
if (p) printf("%s\n", p);
return 0;
}