【从零开始的 C 语言笔记】第十五篇-String 函式库介绍与应用

不怎么重要的前言

上一篇我们介绍了array的延伸应用,利用字元阵列我们可以当作储存字串的工具。

今天我们来介绍一下字串(String)相关的应用--String函式库!


String 函式库

<string.h>是一个包含了许多字串应用的函式库,这个函式库可以让你複製一个字串的内容到另一个字串、合併字串、分割字串、计算字串长度、比较字串是否相等,这些都可以在<math.h>中找到对应函式来协助处理,可以省去很多不必要的麻烦。

介绍

(1) 计算str长度

函式说明size_t strlen(const char *str)计算str字串长度(不包含「\0」)

(2) 複製字串

函式说明char *strcpy(char *dest, const char *src)複製src的字串内容到dest中char *strncpy(char *dest, const char *src, size_t n)複製src的字串前n个字元内容到dest中

(3) 合併字串

函式说明char *strcat(char *dest, const char *src)将src字串的内容合併到dest字串尾char *strncat(char *dest, const char *src, size_t n)将src字串的前n个字元内容合併到dest字串尾

(4) 字串比较

函式说明int strcmp(const char *str1, const char *str2)会回传一个整数值,若str1字串与str2字串完全相同时,会回传0;若两字串不相同时依照开头字元的ascii code,回传>0或<0之值。int strncmp(const char *str1, const char *str2, size_t n)与strcmp类似,但只比较str1字串、str2字串的前n个字元int strcmpi(char *str1, char *str2)strcmp的延伸版,是不分大小写字母的比较int strncmpi(char *str1, char *str2, size_t n)strncmp的延伸版,是不分大小写字母的比较前n个字元

(5) 分割字串

函式说明char *strtok(char *str, const char *delim)依照delim作为分割符,分割str字串

(6) 查找字元

函式说明char *strchr(const char *str, char c)回传str字串中第一个出现的c字元地址size_t strcspn(const char *str1, const char *str2)回传从头开始在str1字串中,完全未出现str2中字元的字串长度

(7) 字母大小写转换

函式说明char *strupr(char *str)将str字串中的字母全部转换为大写char *strlwr(char *str)将str字串中的字母全部转换为小写

(8) 字串设定

函式说明char *strset(char *str, char c)将str字串的字元全部转换为c字元char *strnset(char *str, char c, size_t n)将str字串的前n个字元全部转换为c字元char *strrev(char *str)将str字串中的全部字元颠倒(不含「\0」)实际应用
#include <stdio.h>#include <string.h>int main(void) {    char str1[10] = "12345";    printf("strlen: %d\n", strlen(str1));    char str2[] = "apple!";    char str3[] = "bird!";    strncpy(str2, str3, 4);    printf("strncpy: %s\n", str2);    char str4[] = "apple!";    char str5[] = "bird!";    strncat(str4, str5, 4);    printf("strncat: %s\n", str4);    char str6[] = "aaa";    char str7[] = "AAA";    printf("strcmp: %d\n", strcmp(str6, str7));    printf("strcmpi: %d\n", strcmpi(str6, str7));    char str8[] = "apple bird cat";    char c[]=" ";    char *token;    token = strtok(str8, c);    printf("strtok: %s\n", token);    token = strtok(NULL, c);    printf("strtok: %s\n", token);    token = strtok(NULL, c);    printf("strtok: %s\n", token);    char str9[] = "Hello World!";    char c2 = 'W';    printf("strchr: %p\n", strchr(str9, c2));    printf("strchr index: %d\n", strchr(str9, c2)-str9);    char str10[] = "abcDef";    strupr(str10);    printf("strupr: %s\n", str10);    char str11[] = "12345";    char c3 = 'c';    strset(str11, c3);    printf("strset: %s\n", str11);    char str12[] = "Hello World!";    strrev(str12);    printf("strrev: %s\n", str12);    return 0; }

http://img2.58codes.com/2024/20142565L8sGgLI7I6.png


辛苦看到这里的你,如果觉得比较难懂,可以参考上面的程式码,或者自己测试看看喔!

下一篇我们来介绍什么是二维Array!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章