C语言教程 第10页
C 库函数 – strstr() C 标准库 – <string.h> 描述 C 库函数 char *strstr(const char *haystack, const char *needle) 在字符串 haystack 中查找第一次出现字符串 needle 的位置,不包含终止符 ‘\0’。 声明 下面是 strstr() 函数的声明。 char *strstr(const char *haystack, const char *needle) 参数 haystack — 要被检索的 C 字符串。 needle — 在 haystack 字符串内要搜索的小字符串。 返回值 该函数返回在 haystack 中第一次出现 needle 字符串的位置,如果未找到则返回 null。 实例 下面的实例演示了 strstr() 函数的用法。 #include <stdio.h> #include <string.h> int main() { const char haystack[20] = "W3CSchool"; const char needle[10] = "School"; char *ret; ret = strstr(haystack, needle); printf("子字符串是: %s\n", ret); return(0); } 让我们编译并运行上面的程序,这将产生以下结果: 子字符串是: School C 标准库 – <string.h>
C 库函数 – strchr() C 标准库 – <string.h> 描述 C 库函数 char *strchr(const char *str, int c) 在参数 str 所指向的字符串中搜索第一次出现字符 c(一个无符号字符)的位置。 声明 下面是 strchr() 函数的声明。 char *strchr(const char *str, int c) 参数 str — 要被检索的 C 字符串。 c — 在 str 中要搜索的字符。 返回值 该函数返回在字符串 str 中第一次出现字符 c 的位置,如果未找到该字符则返回 NULL。 实例 下面的实例演示了 strchr() 函数的用法。 #include <stdio.h> #include <string.h> int main () { const char str[] = "http://www.w3cschool.cn"; const char ch = '.'; char *ret; ret = strchr(str, ch); printf("|%c| 之后的字符串是 - |%s|\n", ch, ret); return(0); } 让我们编译并运行上面的程序,这将产生以下结果: |.| 之后的字符串是 - |.w3cschool.cn| C 标准库 – <string.h>
C 库函数 – strpbrk() C 标准库 – <string.h> 描述 C 库函数 char *strpbrk(const char *str1, const char *str2) 检索字符串 str1 中第一个匹配字符串 str2 中字符的字符,不包含空结束字符。也就是说,依次检验字符串 str1 中的字符,当被检验字符在字符串 str2 中也包含时,则停止检验,并返回该字符位置。 声明 下面是 strpbrk() 函数的声明。 char *strpbrk(const char *str1, const char *str2) 参数 str1 — 要被检索的 C 字符串。 str2 — 该字符串包含了要在 str1 中进行匹配的字符列表。 返回值 该函数返回 str1 中第一个匹配字符串 str2 中字符的字符数,如果未找到字符则返回 NULL。 实例 下面的实例演示了 strpbrk() 函数的用法。 #include <stdio.h> #include <string.h> int main () { const char str1[] = "abcde2fghi3jk4l"; const char str2[] = "34"; char *ret; ret = strpbrk(str1, str2); if(ret) { printf("第一个匹配的字符是: %c\n", *ret); } else { printf("未找到字符"); } return(0); } 让我们编译并运行上面的程序,这将产生以下结果: 第一个匹配的字符是: 3 C 标准库 – <string.h>
C 库函数 – strcmp() C 标准库 – <string.h> 描述 C 库函数 int strcmp(const char *str1, const char *str2) 把 str1 所指向的字符串和 str2 所指向的字符串进行比较。 声明 下面是 strcmp() 函数的声明。 int strcmp(const char *str1, const char *str2) 参数 str1 — 要进行比较的第一个字符串。 str2 — 要进行比较的第二个字符串。 返回值 该函数返回值如下: 如果返回值 < 0,则表示 str1 小于 str2。 如果返回值 > 0,则表示 str2 小于 str1。 如果返回值 = 0,则表示 str1 等于 str2。 实例 下面的实例演示了 strncmp() 函数的用法。 #include <stdio.h> #include <string.h> int main () { char str1[15]; char str2[15]; int ret; strcpy(str1, "abcdef"); strcpy(str2, "ABCDEF"); ret = strcmp(str1, str2); if(ret < 0) { printf("str1 小于 str2"); } else if(ret > 0) { printf("str2 小于 str1"); } else { printf("str1 等于 str2"); } return(0); } 让我们编译并运行上面的程序,这将产生以下结果: str2 小于 str1 C 标准库 – <string.h>
C 库函数 – strrchr() C 标准库 – <string.h> 描述 C 库函数 char *strrchr(const char *str, int c) 在参数 str 所指向的字符串中搜索最后一次出现字符 c(一个无符号字符)的位置。 声明 下面是 strrchr() 函数的声明。 char *strrchr(const char *str, int c) 参数 str — C 字符串。 c — 要搜索的字符。以 int 形式传递,但是最终会转换回 char 形式。 返回值 该函数返回 str 中最后一次出现字符 c 的位置。乳沟未找到该值,则函数返回一个空指针。 实例 下面的实例演示了 strrchr() 函数的用法。 #include <stdio.h> #include <string.h> int main () { int len; const char str[] = "http://www.w3cschool.cn"; const char ch = '.'; char *ret; ret = strrchr(str, ch); printf("|%c| 之后的字符串是 - |%s|\n", ch, ret); return(0); } 让我们编译并运行上面的程序,这将产生以下结果: |.| 之后的字符串是 - |.cc| C 标准库 – <string.h>
C 库函数 – getenv() C 标准库 – <stdlib.h> 描述 C 库函数 char *getenv(const char *name) 搜索 name 所指向的环境字符串,并返回相关的值给字符串。 声明 下面是 getenv() 函数的声明。 char *getenv(const char *name) 参数 name — 包含被请求变量名称的 C 字符串。 返回值 该函数返回一个以 null 结尾的字符串,该字符串为被请求环境变量的值。如果该环境变量不存在,则返回 NULL。 实例 下面的实例演示了 getenv() 函数的用法。 #include <stdio.h> #include <stdlib.h> int main () { printf("PATH : %s\n", getenv("PATH")); printf("HOME : %s\n", getenv("HOME")); printf("ROOT : %s\n", getenv("ROOT")); return(0); } 让我们编译并运行上面的程序,这将产生以下结果: PATH : /sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin HOME : / ROOT : (null) C 标准库 – <stdlib.h>
C 库函数 – mblen() C 标准库 – <stdlib.h> 描述 C 库函数 int mblen(const char *str, size_t n) 返回参数 str 所指向的多字节字符的长度。 声明 下面是 mblen() 函数的声明。 int mblen(const char *str, size_t n) 参数 str — 指向多字节字符的第一个字节的指针。 n — 要检查的字符长度的最大字节数。 返回值 如果识别了一个非空宽字符,mblen() 函数返回 str 开始的多字节序列解析的字节数。如果识别了一个空宽字符,则返回 0。如果识别了一个无效的多字节序列,或者不能解析一个完整的多字节字符,则返回 -1。 实例 下面的实例演示了 mblen() 函数的用法。 #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int len; char *pmbnull = NULL; char *pmb = (char *)malloc( MB_CUR_MAX ); wchar_t *pwc = L"Hi"; wchar_t *pwcs = (wchar_t *)malloc( sizeof( wchar_t )); printf("转换为多字节字符串\n"); len = wcstombs( pmb, pwc, MB_CUR_MAX); printf("被转换的字符 %d\n", len); printf("第一个多字节字符的十六进制值:%#.4x\n", pmb); len = mblen( pmb, MB_CUR_MAX ); printf( "多字节字符 %x 的字节长度:%u\n", pmb, len ); pmb = NULL; len = mblen( pmb, MB_CUR_MAX ); printf( "多字节字符 %x 的字节长度:%u\n",...
C 库函数 – strcat() C 标准库 – <string.h> 描述 C 库函数 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。 声明 下面是 strcat() 函数的声明。 char *strcat(char *dest, const char *src) 参数 dest — 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。 src — 指向要追加的字符串,该字符串不会覆盖目标字符串。 返回值 该函数返回一个指向最终的目标字符串 dest 的指针。 实例 下面的实例演示了 strcat() 函数的用法。 #include <stdio.h> #include <string.h> int main () { char src[50], dest[50]; strcpy(src, "This is source"); strcpy(dest, "This is destination"); strcat(dest, src); printf("最终的目标字符串: |%s|", dest); return(0); } 让我们编译并运行上面的程序,这将产生以下结果: 最终的目标字符串: |This is destinationThis is source| C 标准库 – <string.h>
C 库函数 – strncat() C 标准库 – <string.h> 描述 C 库函数 char *strncat(char *dest, const char *src, size_t n) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾,直到 n 字符长度为止。 声明 下面是 strncat() 函数的声明。 char *strncat(char *dest, const char *src, size_t n) 参数 dest — 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串,包括额外的空字符。 src — 要追加的字符串。 n — 要追加的最大字符数。 返回值 该函数返回一个指向最终的目标字符串 dest 的指针。 实例 下面的实例演示了 strncat() 函数的用法。 #include <stdio.h> #include <string.h> int main () { char src[50], dest[50]; strcpy(src, "This is source"); strcpy(dest, "This is destination"); strncat(dest, src, 15); printf("最终的目标字符串: |%s|", dest); return(0); } 让我们编译并运行上面的程序,这将产生以下结果: 最终的目标字符串: |This is destinationThis is source| C 标准库 – <string.h>
C 库函数 – atexit() C 标准库 – <stdlib.h> 描述 C 库函数 int atexit(void (*func)(void)) 当程序正常终止时,调用指定的函数 func。您可以在任何地方注册你的终止函数,但它会在程序终止的时候被调用。 声明 下面是 atexit() 函数的声明。 int atexit(void (*func)(void)) 参数 func — 在程序终止时被调用的函数。 返回值 如果函数成功注册,则该函数返回零,否则返回一个非零值。 实例 下面的实例演示了 atexit() 函数的用法。 #include <stdio.h> #include <stdlib.h> void functionA () { printf("这是函数A\n"); } int main () { /* 注册终止函数 */ atexit(functionA ); printf("启动主程序...\n"); printf("退出主程序...\n"); return(0); } 让我们编译并运行上面的程序,这将产生以下结果: 启动主程序... 退出主程序... 这是函数A C 标准库 – <stdlib.h>