一、strsep函數的用法
strsep函數可以用來分解字元串,將字元串按照指定的分隔符分成若干個子字元串,並返回其中一個子字元串。在使用strsep函數時需要注意以下幾點:
1. 函數使用後會改變原來字元串的內容,所以如果涉及到原字元串的使用,需要備份。
2. 不能傳入const類型的字元串,因為分隔符的位置需要函數內部更改。
3. 如果字元串結尾沒有分隔符,函數返回最後一個子字元串的地址,否則返回空指針。
#include <stdio.h> #include <string.h> int main() { char str[] = "hello,world"; char *p; char *sep = ","; while ((p = strsep(&str, sep)) != NULL) { printf("%s\n", p); } return 0; }
二、strsep函數如果沒找到
如果分隔符不存在,strsep函數返回NULL,一般需要通過判斷返回值是否為空指針來判斷分解是否結束。
#include <stdio.h> #include <string.h> int main() { char str[] = "hello,world"; char *p; char *sep = "|"; while ((p = strsep(&str, sep)) != NULL) { printf("%s\n", p); } if (str == NULL) { printf("分解結束!\n"); } return 0; }
三、strsep函數頭文件
strsep函數的頭文件是string.h,需要在使用之前引入該頭文件。
#include <stdio.h> #include <string.h> int main() { char str[] = "hello,world"; char *p; char *sep = ","; while ((p = strsep(&str, sep)) != NULL) { printf("%s\n", p); } return 0; }
四、strsep函數和strtok
strsep函數和strtok函數功能類似,都可以用來分解字元串。比較不同的是strsep函數的分隔符是一個字元串,而strtok函數的分隔符是一個字元。
#include <stdio.h> #include <string.h> int main() { char str[] = "hello,world"; char *p; char *sep = ","; p = strtok(str, sep); while (p != NULL) { printf("%s\n", p); p = strtok(NULL, sep); } return 0; }
五、strstr函數
strstr函數可以用來查找字元串中是否包含指定的子字元串。
#include <stdio.h> #include <string.h> int main() { char str[] = "hello,world"; char *p; p = strstr(str, "world"); if (p != NULL) { printf("找到了子字元串:%s\n", p); } else { printf("沒有找到子字元串!\n"); } return 0; }
六、strstr函數用法
strstr函數除了可以判斷字元串中是否包含子字元串外,還可以返回包含子字元串的起始地址。
#include <stdio.h> #include <string.h> int main() { char str[] = "hello,world"; char *p; p = strstr(str, "world"); if (p != NULL) { printf("子字元串的起始地址:%p\n", p); printf("子字元串:%s\n", p); } else { printf("沒有找到子字元串!\n"); } return 0; }
七、strsplit函數
strsplit函數是一種使用方便的字元串分解函數,可以將字元串分解為多個子字元串。
#include <stdio.h> #include <string.h> int main() { char str[] = "hello,world"; char *p; int count = 0; while ((p = strsep(&str, ",")) != NULL) { printf("子字元串:%s\n", p); count++; } printf("一共分解成了%d個子字元串!\n", count); return 0; }
八、strstream函數
strstream函數是一種流式的字元串分解函數,可以將字元串流式地分解為多個子字元串。
#include <stdio.h> #include <string.h> int main() { char str[] = "hello,world"; char *p; int count = 0; char *rest = str; while ((p = strsep(&rest, ",")) != NULL) { printf("子字元串:%s\n", p); count++; } printf("一共分解成了%d個子字元串!\n", count); return 0; }
九、strstr函數c
strstr函數c是C標準庫中的函數,可以用於查找字元串中是否包含指定的子字元串。
#include <stdio.h> #include <string.h> int main() { char str[] = "hello,world"; char *p; p = strstr(str, "world"); if (p != NULL) { printf("找到了子字元串:%s\n", p); } else { printf("沒有找到子字元串!\n"); } return 0; }
十、strsub函數用法
strsub函數可以用來截取指定字元串中的一段子字元串。
#include <stdio.h> #include <string.h> int main() { char str[] = "hello,world"; char sub[100]; strncpy(sub, str + 6, 5); sub[5] = '\0'; printf("子字元串:%s\n", sub); return 0; }
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/238505.html