字串函式之Strtok()函式
Strtok()函式詳解:
該函式包含在"string.h"標頭檔案中
函式原型:
-
char* strtok (char* str,constchar* delimiters );
函式功能:
切割字串,將str切分成一個個子串
函式引數:
str:在第一次被呼叫的時間str是傳入需要被切割字串的首地址;在後面呼叫的時間傳入NULL。
delimiters:表示切割字串(字串中每個字元都會 當作分割符)。
函式返回值:
當s中的字元查詢到末尾時,返回NULL;
如果查不到delimiter所標示的字元,則返回當前strtok的字串的指標。
使用strtok()函式:
-
#include<stdio.h> #include<string.h> int main(void) { char buf[]="[email protected]@[email protected]@heima"; char*temp = strtok(buf,"@"); while(temp) { printf("%s ",temp); temp = strtok(NULL,"@"); } return0; }
預計輸出結果:
"hello boy this is heima "
實際執行結果:
得到的結論:
strtok在切割字串的時間,實際上就是將分割符的字元delimiter替換為'\0'並且返回首地址。
自己實現strtok()函式原理:
函式程式碼:
-
#include<stdio.h> #include<string.h> //根據函式原型實現strtok()函式 char* myStrtok_origin(char* str_arr,constchar* delimiters,char**temp_str) { //定義一個指標來指向待分解串 char*b_temp; /* * 1、判斷引數str_arr是否為空,如果是NULL就以傳遞進來的temp_str作為起始位置; * 若不是NULL,則以str為起始位置開始切分。
完美實現!!!
拓展知識點:可重入與不可重入函式
可重入函式:
指一個可以被多個任務呼叫的函式(過程),任務在呼叫時不必擔心資料是否會出錯。
不可重入函式:
如果函式介面的程式碼實現中在塊內定義和使用了static儲存型別的變數,這種函式將是不可重入函式。它在實時系統中是不安全函式
相關推薦
字串函式之Strtok()函式
Strtok()函式詳解: 該函式包含在"string.h"標頭檔案中 函式原型: char* strtok (char* str,constchar* delimiters ); 函式功能: 切割字串,將str切分成一個個子串 函式引數: str:在第一次被呼叫的時間str是
Python函式之系統函式的呼叫
全部測試程式碼 #!/usr/bin/evn python3 #_*_conding:utf-8 _*_ #系統內建函式 #1.abs():檢視絕對值,如果傳入的引數不對,會報TypeError print('-100的絕對值--',abs(-100)) #2.max():檢
linux C函式之stat函式
1.函式功能: 通過檔名filename獲取檔案資訊,並儲存在buf所指的結構體stat中 2.函式原型 1)函式標頭檔案 #include <sys/stat.h> #include <unistd.h> 2)函式 int stat(const c
C函式之memcpy 函式用法
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
fflash函式、strtok函式exec函式
一、fflush函式 函式定義:int fflush(FILE *stream); 1.fflush會強迫將緩衝區內的資料回寫到引數stream指向的檔案中,如果引數stream為NULL,fllush會將所有開啟的檔案資料更新 2.fflush(stdin)重新整理緩衝區,把緩衝區中
函式之高階函式
1:函式可以賦值給一個變數名字 ,函式引數能接收變數 這個函式也可以接收另一個函式的函式名作為引數,那麼這就是一個高階函式ef func1(): print('老王好帥!')def func2(ff): ff() return '老王媳婦好美!'print(func2(func1))2:一個函式可以接收
linux C函式之access函式的用法【轉】
1.函式功能: 檢查呼叫程序是否可以對指定的檔案執行某種操作。 2.函式原型: 1)函式標頭檔案 #include <stdio.h> #include <unistd.h> 2)函式 int access(
【 MATLAB 】訊號處理工具箱的訊號產生函式之 sawtooth 函式簡記
sawtooth 函式 x = sawtooth(t) generates a sawtooth wave with period 2π for the elements of the time
C函式之memcpy 函式用法
標頭檔案:#include <string.h>memcpy() 用來複制記憶體,其原型為: void * memcpy ( void * dest, const void * src, size_t num );memcpy() 會複製 src 所指的記憶體內容的前 num 個位元組到 d
Linux程序控制函式之exec()函式的學習
轉載地址:http://www.linuxidc.com/Linux/2011-02/32125p6.htm, 紅色部分, 是我自己的註解。 當我們看恐怖片時,經常會有這樣的場景:當一個人被鬼上身後,這個人的身體表面上還和以前一樣
9、strchr函式&strtok函式&strdup使用
題意: 將字串abcddd#123#gaghah#345#fdsafa#345#中把#之間的數字串替換成對應的字母串 123===》defd 345===》fdse #include<iostream> #include<stdio.h> #include&l
ORACLE函式之GREATEST函式詳解例項
1語法GREATEST(expr_1, expr_2, ...expr_n)2說明GREATEST(expr_1, expr_2, ...expr_n)函式從表示式(列、常量、計算值)expr_1, e
c函式之gettimeofday()函式獲取系統時間
gettimeofday 使用C語言編寫程式需要獲得當前精確時間(1970年1月1日到現在的時間),或者為執行計時,可以使用gettimeofday()函式。 函式原型: int gettimeofday(struct timeval*tv, struct
Linux時間函式之 gettimeofday() 函式之使用方法
一.gettimeofday()函式的使用方法 1.簡介: 在C語言中可以使用函式gettimeofday()函式來得到時間。它的精度可以達到微妙 2.函式原型: #include<
C函式之memcpy()函式用法
函式原型 void *memcpy(void*dest, const void *src, size_t n); 功能 由src指向地址為起始地址的連續n個位元組的資料複製到以destin指向地址為起始地址的空間內。 標頭檔案 #include<
Oracle-23-單行函式之日期函式
一、單行函式之日期函式 1.trunk(x[,y])——對x進行截斷; 2.round(x[,y])——對x進行取整; 3.next_day(x,day)——返回從x開始,一個day的日期; 4.mo
jmeter函式之時間函式__time
企鵝交流群>79642549 常用於帶時間戳的地方 比如:帶時間戳的結果檔案,每次執行生成獨立檔案 ${__time(,)} 1450056496991 //無格式化引數,
Linux時間函式之gettimeofday()函式之使用方法
一.gettimeofday()函式的使用方法:1.簡介:在C語言中可以使用函式gettimeofday()函式來得到時間。它的精度可以達到微妙2.函式原型:#include<sys/time.h>int gettimeofday(struct timeval*
Linux 時間函式之 gettimeofday() 函式之使用方法
一.gettimeofday() 函式的使用方法: 1.簡介: 在 C 語言中可以使用函式 gettimeofday() 函式來得到時間。它的精度可以達到微妙 2.函式原型: #include<sys/time.h> int gettimeofday(stru
SQL server 內建函式之隨機函式newid()和rand()
從A表隨機取2條記錄,用SELECT TOP 10 * FROM ywle order by newid() order by 一般是根據某一欄位排序,newid()的返回值 是uniqueidentifier ,order by newid()隨機選取記錄是如何進行的