日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

strtok函数与函数用法实例

發(fā)布時(shí)間:2023/12/29 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 strtok函数与函数用法实例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一:函數(shù)簡(jiǎn)介:

使用strtok函數(shù)需要索引頭文件#include<string.h>,strtok函數(shù)通常用于分割以及重組。被特殊字符間隔的字符串。

strtok的函數(shù)原型為char *strtok(char *str, char *sep)strtok()在參數(shù)str的字符串中發(fā)現(xiàn)參數(shù)sep中包含的分割字符時(shí),則會(huì)將該字符改為\0 字符。在第一次調(diào)用時(shí),strtok()必需給予參數(shù)str一個(gè)需要進(jìn)行分割的字符串,往后的調(diào)用則應(yīng)將參數(shù)s設(shè)置成NULL。每當(dāng)strtok函數(shù)被成功調(diào)用,該函數(shù)都會(huì)返回一個(gè)指向已經(jīng)成功分割的子字符串的指針。

二:示例:

關(guān)于strtok函數(shù)用法舉例如下:

現(xiàn)在我們需要從一串字符:I,&LOVE,CHIAN,&中取出密碼:ILOVECHIAN我們就可以運(yùn)用strtok函數(shù)進(jìn)行操作.

1.對(duì)字符串做一份拷貝:

char arr1[20]="I&LOVE,CHIAN,&";

char arr2[30]={0}; strcmp(arr2,arr1);

2.確定分割字符:

char* str=“, &”’;

3.使用strtok函數(shù):

for(str=strtok(arr2,str);str!=NULL;str=strtok(NULL,str)

{printf("%s ,str);}

在這個(gè)for循環(huán)語(yǔ)句中,

首次調(diào)用str函數(shù):str=strtok(arr2,str),該函數(shù)將第一個(gè)分割字符:'&'更改為\0,指針str指向字符'I'的地址,因此首次打印可打印出字符‘I’。

之后的調(diào)用:str=strtok(NULL,str),之后的調(diào)用該函數(shù)第一個(gè)參數(shù)需要傳遞一個(gè)空指針,函數(shù)會(huì)從上一次調(diào)用被更改為'\0'的分隔符之后的地址向后繼續(xù)查找字符串中的分割字符。

三:實(shí)例運(yùn)用:

例題:倒置字符串,多組輸入,將每一句話中的字母倒置,標(biāo)點(diǎn)不倒置, 一次輸出倒置后的字符串,如原句有多個(gè)空格,僅以一個(gè)空格間隔。

實(shí)例:輸入:I? ?love? ? ? china.? ? ? ? 輸出china. love I

四:源碼:

#include<stdio.h>
#include<string.h>
int main()
{
?? ?char* arr1[10];//每個(gè)指針用于標(biāo)記每個(gè)字符串首地址

?? ?char arr2[]={0};
?? ?while(gets(arr2))//while (scanf("%s",&arr2)!=EOF)多組輸入
?? ?{

?? ?char arr3[30]={0};
?? ?strcpy(arr3,arr2);//保留一份原字符串a(chǎn)rr2
?? ?const char* sep=" ";//分隔符字符串,可自行設(shè)置多個(gè)或其他的分割字符
?? ?char* str=NULL;//初始化
?? ?int i=0;

?? ?for(str=strtok(arr3,sep);str!=NULL;str=strtok(NULL,sep))
?? ?{
?? ??? ?arr1[i]=str;//存儲(chǔ)每個(gè)字母(子字符串)的首地址
?? ??? ?i++;
?? ?}
?? ?int count=i-1;
?? ?for(int j=count;j>=0;j--)
?? ?{
?? ??? ?printf("%s ",arr1[j]);
?? ?}
?? ?printf("\nPlease input agin:\n");

? ? }


?? ?return 0;
}

?

總結(jié)

以上是生活随笔為你收集整理的strtok函数与函数用法实例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。