日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

恶心的C语言strtok函数

發布時間:2025/3/20 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 恶心的C语言strtok函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從C#、JAVA到C ,讓我覺得像是從公產主義社會回到了原始社會,不順手,所以很心里憋氣!!!

函數名:?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;?
}
?
下面是惡心的strtok函數,用作分割字符串
它的第二個參數不能是char*的變量,是char[]的變量則沒問題
FUCK!
我做了N多次測試才發現的這個問題,害得我調試UNIX網絡編程作業好長時間

這個函數的調用真是奇怪
第一次要設定參數,第二次參數竟然可以NULL
然后函數竟然能分割第一次參數設置的字符
我無語了
這樣的設計也太不人性化了


下面認真的說一下這個函數,如有哪個和我一樣郁悶的人發現這篇文章,或許能少走些彎路
函數第一次調用需設置兩個參數,strtok(str,",") str 需要分割的串 “,”根據,分割
第一次分割的結果,返回串中第一個,之前的字串,也就是上面的程序第一次輸出abc

第二次調用該函數strtok(NULL,"."),第一個參數設置為NULL,第二個參數還是分割的依據
結果返回分割依據后面的字串,即上面的程序輸出d

轉載于:https://www.cnblogs.com/lancidie/archive/2011/02/04/1949185.html

總結

以上是生活随笔為你收集整理的恶心的C语言strtok函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。