strtok函数与函数用法实例
一:函數簡介:
使用strtok函數需要索引頭文件#include<string.h>,strtok函數通常用于分割以及重組。被特殊字符間隔的字符串。
strtok的函數原型為char *strtok(char *str, char *sep)strtok()在參數str的字符串中發現參數sep中包含的分割字符時,則會將該字符改為\0 字符。在第一次調用時,strtok()必需給予參數str一個需要進行分割的字符串,往后的調用則應將參數s設置成NULL。每當strtok函數被成功調用,該函數都會返回一個指向已經成功分割的子字符串的指針。
二:示例:
關于strtok函數用法舉例如下:
現在我們需要從一串字符:I,&LOVE,CHIAN,&中取出密碼:ILOVECHIAN我們就可以運用strtok函數進行操作.
1.對字符串做一份拷貝:
char arr1[20]="I&LOVE,CHIAN,&";
char arr2[30]={0}; strcmp(arr2,arr1);
2.確定分割字符:
char* str=“, &”’;
3.使用strtok函數:
for(str=strtok(arr2,str);str!=NULL;str=strtok(NULL,str)
{printf("%s ,str);}
在這個for循環語句中,
首次調用str函數:str=strtok(arr2,str),該函數將第一個分割字符:'&'更改為\0,指針str指向字符'I'的地址,因此首次打印可打印出字符‘I’。
之后的調用:str=strtok(NULL,str),之后的調用該函數第一個參數需要傳遞一個空指針,函數會從上一次調用被更改為'\0'的分隔符之后的地址向后繼續查找字符串中的分割字符。
三:實例運用:
例題:倒置字符串,多組輸入,將每一句話中的字母倒置,標點不倒置, 一次輸出倒置后的字符串,如原句有多個空格,僅以一個空格間隔。
實例:輸入:I? ?love? ? ? china.? ? ? ? 輸出china. love I
四:源碼:
#include<stdio.h>
#include<string.h>
int main()
{
?? ?char* arr1[10];//每個指針用于標記每個字符串首地址
?? ?char arr2[]={0};
?? ?while(gets(arr2))//while (scanf("%s",&arr2)!=EOF)多組輸入
?? ?{
?? ?char arr3[30]={0};
?? ?strcpy(arr3,arr2);//保留一份原字符串arr2
?? ?const char* sep=" ";//分隔符字符串,可自行設置多個或其他的分割字符
?? ?char* str=NULL;//初始化
?? ?int i=0;
?? ?for(str=strtok(arr3,sep);str!=NULL;str=strtok(NULL,sep))
?? ?{
?? ??? ?arr1[i]=str;//存儲每個字母(子字符串)的首地址
?? ??? ?i++;
?? ?}
?? ?int count=i-1;
?? ?for(int j=count;j>=0;j--)
?? ?{
?? ??? ?printf("%s ",arr1[j]);
?? ?}
?? ?printf("\nPlease input agin:\n");
? ? }
?? ?return 0;
}
?
總結
以上是生活随笔為你收集整理的strtok函数与函数用法实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微搭低代码入门教程03
- 下一篇: 酷比魔方 iwork10 旗舰版