strtok()
char *strtok(char str[], const char *delim)
用来切割字符串,将str[],按照要求切分成一个个子串
delim 是切割符
int main(void)
{
char s[] = "aaa bbb ccc ddd";
char c[] = " ";
char *r = strtok(s, c);
while (r != NULL) {
printf("%s\n", r);
r = strtok(NULL, c);
}
return 0;
}
*r = strtok(aaa bbb ccc ddd, " ")
这里就是 把aaa bbb ccc ddd,安照空格,切割成几个小子串
strdup()
原型char *strdup(const char *s);
返回值
返回一个指针,指向为复制字符串分配的空间。如果分配空间失败,则返回NULL值。
说明
功能:将字符串拷贝到新建的位置处
注意:strdup()在内部调用了malloc()为变量分配内存,不需要使用返回的字符串时,需要用free()释放相应的内存空间,否则会造成内存泄漏。
nptr=“aaaaaaaabb”
malloc一个参数字符串大小的内存,并且将字符串拷贝进去.