strtok_s 的详细使用方法
时间: 2023-12-17 18:42:10 浏览: 114
引用\[1\]: strtok_r是C语言中的一个函数,用于将字符串分割成多个子字符串。它的原型是char *strtok_r(char *__str, const char *__sep, char **__lasts),其中__str是要分割的字符串,__sep是分隔符,__lasts是一个指向指针的指针,用于保存下一次要分割字符串的指针。与strtok不同的是,strtok_r是线程安全的,可以在多线程环境中使用。使用strtok_r的方法与strtok类似,只是需要传入额外的__lasts参数来保存下一次要分割字符串的指针。引用\[2\]:下面是一个使用strtok_r的例子: char str\[\] = "boy,Lilei|girl,Lili"; char *savP, *savP1; char *p = strtok_r(str, "|", &savP); while(p != nullptr){ char *p1 = strtok_r(p, ",", &savP1); while (p1 != nullptr){ cout << p1 << endl; p1 = strtok_r(nullptr, ",", &savP1); } p = strtok_r(nullptr, "|", &savP); } 输出: boy Lilei girl Lili 引用\[3\]:至于strtok_s,它是C11标准中引入的一个函数,用于字符串分割。与strtok_r类似,strtok_s也是线程安全的。它的原型是char *strtok_s(char *__restrict__ __str, const char *__restrict__ __sep, char **__restrict__ __lasts),其中__str是要分割的字符串,__sep是分隔符,__lasts是一个指向指针的指针,用于保存下一次要分割字符串的指针。使用方法与strtok_r类似,只是函数名和参数名称有所不同。
#### 引用[.reference_title]
- *1* *2* *3* [strok、strtok_r和strtok_s](https://blog.csdn.net/zhangsj1007/article/details/81365732)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文