C语言标准库——<string.h>
目录
1、strcpy()
2、strncpy()
3、strcat()
4、strchr()
5、strcmp()
6、strlen()
7、strcspn()
8、memchr()
9、memcmp()
10、memcpy()
11、memset()
12、strtok()
C语言函数库——
标准库中一个常用的头文件,在使用到字符数组时需要使用。string .h 头文件定义了一个变量类型、一个宏和各种操作字符数组的函数。
1、strcpy()
声明:char *strcpy(char *dest, const char *src)
描述:把src指向的字符串复制到dest
示例:
#include#include int main () { char str1[]="Test string"; char str2[40]; char str3[40]; strcpy (str2,str1); strcpy (str3,"copy successful"); printf ("str1: %s\nstr2: %s\nstr3: %s\n",str1,str2,str3); return 0; }

2、strncpy()
声明:char *strncpy(char *dest, const char *src, size_t n)
描述:把 src 所指向的字符串复制到 dest,最多复制 n 个字符。当 src 的长度小于 n 时,dest 的剩余部分将用空字节填充。
示例:
#include#include int main() { char src[40]; char dest[12]; memset(dest, '\0', sizeof(dest)); strcpy(src, "Test string"); strncpy(dest, src, 10); printf("最终结果: %s\n", dest); return(0); }

3、strcat()
声明:char *strcat(char *dest, const char *src)
描述:把 src 所指向的字符串追加到 dest 所指向的字符串的结尾
示例:
#include#include int main () { char src[50], dest[50]; strcpy(src, "First string!"); strcpy(dest, "Second string."); strcat(dest, src); printf("结果是: (%s)", dest); return(0); }

4、strchr()
声明:char *strchr(const char *str, int c)
描述:用于查找字符串中的一个字符,并返回该字符在字符串中第一次出现的位置
示例:
#include#include int main () { const char str[] = "hello world!"; const char ch = 'r'; char *ptr; ptr = strchr(str, ch); if (ptr != NULL) { printf("字符 'r' 出现的位置为 %d\n", ptr - str + 1); printf("(%c) 之后的字符串是 (%s)\n", ch, ptr); } else { printf("没有找到字符 'r'\n"); } return(0); }

5、strcmp()
声明:int strcmp(const char *str1, const char *str2)
描述:把 str1 所指向的字符串和 str2 所指向的字符串进行比较
返回值:如果返回值小于 0,则表示 str1 小于 str2。
如果返回值大于 0,则表示 str1 大于 str2。
如果返回值等于 0,则表示 str1 等于 str2。
示例:
#include#include 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("str1 大于 str2"); } else { printf("str1 等于 str2"); } return 0; }

6、strlen()
声明:size_t strlen(const char *str)
描述:计算字符串 str 的长度,直到空结束字符,但不包括空结束字符
示例:
#include#include int main () { char str[50]; int len; strcpy(str, "Test string!"); len = strlen(str); printf("(%s)的长度是:%d\n", str, len); return 0; }

7、strcspn()
声明:size_t strcspn(const char *str1, const char *str2)
描述:检索字符串 str1 开头连续有几个字符都不含字符串 str2 中的字符
示例:
#include#include int main () { int len; const char str1[] = "Test string2!"; const char str2[] = "ing"; len = strcspn(str1, str2); printf("第一个匹配的字符在:%d\n", len + 1); return 0; }

8、memchr()
声明:void *memchr(const void *str, int c, size_t n)
描述:在参数 str 所指向的字符串的前 n 个字节中搜索第一次出现字符 c(一个无符号字符)的位置
示例:
#include#include int main () { const char str[] = "test.string"; const char ch = '.'; char *ret; ret = (char*)memchr(str, ch, strlen(str)); printf("(%c)之后的字符串是:%s\n", ch, ret); return(0); }

9、memcmp()
声明:int memcmp(const void *str1, const void *str2, size_t n)
描述:把存储区 str1 和存储区 str2 的前 n 个字节进行比较
返回值: 如果返回值小于 0,则表示 str1 小于 str2。
如果返回值大于 0,则表示 str1 大于 str2。
如果返回值等于 0,则表示 str1 等于 str2。
示例:
#include#include int main () { char str1[15]; char str2[15]; int ret; memcpy(str1, "abcdef", 6); memcpy(str2, "ABCDEF", 6); ret = memcmp(str1, str2, 5); if(ret > 0) { printf("str2 小于 str1"); } else if(ret < 0) { printf("str1 小于 str2"); } else { printf("str1 等于 str2"); } return 0; }

10、memcpy()
声明:void *memcpy(void *str1, const void *str2, size_t n)
描述:从存储区 str2 复制 n 个字节到存储区 str1
示例:
#include#include int main () { const char src[50] = "test string!"; char dest[50]; memcpy(dest, src, strlen(src)+1); printf("dest = %s\n", dest); return 0; }

11、memset()
声明:void *memset(void *str, int c, size_t n)
描述:复制字符c(一个无符号字符)到参数str所指向的字符串的前n个字符
示例:
#include#include int main () { char str[30]; strcpy(str,"Test string!"); puts(str); memset(str,'*',3); puts(str); return 0; }

12、strtok()
声明:char *strtok(char *str, const char *delim)
描述:分解字符串 str 为一组字符串,delim 为分隔符
示例:
#include#include int main () { char str[80] = "This is a test@string"; const char s[2] = "@"; char *token; /* 获取第一个子字符串 */ token = strtok(str, s); /* 继续获取其他的子字符串 */ while( token != NULL ) { printf( "%s\n", token ); token = strtok(NULL, s); } return 0; }

C语言函数库——
assert()
声明:void assert(int expression);
描述:expression这可以是一个变量或任何 C 表达式。如果expression为 TRUE,assert()不执行任何动作。如果expression为 FALSE,assert() 会在标准错误 stderr 上显示错误消息,并中止程序执行。
示例:
#include #includeint main() { int a; char str[50]; printf("请输入一个整数: "); scanf("%d", &a); assert(a >= 10); printf("输入的整数是: %d\n", a); printf("请输入字符串: "); scanf("%s", str); assert(str != NULL); printf("输入的字符串是: %s\n", str); return 0; }

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://net2asp.com/41129f78c5.html
