當strtok s函式在字串的開頭分割會發生什麼

2021-10-14 16:58:34 字數 986 閱讀 1371

通過**的執行結果我們可以看出,

經過strtok_s函式分割後,

函式返回值為原字串的前半部分

函式第三個引數為指向原字串的後半部分指標的位址

字串本身也遭到的破壞變為了原字串的前半部分

如果我們分割時選擇的字串在開頭呢,這時候會發生什麼?**如下:

通過結果可以看出,這時start指標、end指標裡存的內容已經不是我們想要的結果了!而且原字串沒有遭到破壞!如果我們分割時選擇的字串不止乙個字元會發生什麼呢?**如下:

通過結果我們可以看出,start指標中存的依舊是我們想要的結果,但是end指標中存的字串確多出了個"_"這是為什麼呢,根據我的分析,strtok_s這個函式只會根據第二個引數的指標所在位置進行分割,只會切割乙個字元,而並不會切除函式第二個引數中存的整個字串!

總結:當我們使用strtok_s這個函式對字串進行處理的時候需要注意到這些細節,這樣才能保證我們得到的結果的準確性和完整性!

strtok s分解字串

char strtok s char str,要分解的字串 const char delimiters,分隔符 char context 後續待分解字串 wcstok s是strtok s的寬字元版本 wchar t wcstok s wchar t str,const wchar t delimi...

字串和字串函式

字元輸入輸出 getchar putchar ch getchar putchar ch 字串函式 字串輸入 建立儲存空間 接受字串輸入首先需要建立乙個空間來存放輸入的字串。char name scanf s name 上述的用法可能會導致程式異常終止。使用字串陣列 可以避免上述問題 char na...

字串和字串函式

1.字串字面量 字串常量 用雙引號括起來的內容稱為字串字面量,也叫字串常量。字串常量屬於靜態儲存類別,這說明如果在函式中使用字串常量,該字串只會被儲存一次,在整個程式的生命期內存在,計時函式被呼叫多次。用雙引號括起來的內容被視為指向該字串儲存位置的指標。hello 中的 hello 類似於乙個陣列名...