字符串库

来源:互联网 发布:mac如何设置用户头像 编辑:程序博客网 时间:2024/05/17 08:51

String.h库

string.h 头定义了一个变量的类型,操作字符数组的一个宏观和各种功能。
库变量
以下是在头string.h中定义的变量类型:
S.N. 变量和说明
1 size_t
这是一个无符号整数类型的sizeof关键字的结果。
库宏
以下是在头string.h中定义的宏:
S.N. 宏观与说明
1 NULL
这个宏是一个空指针常量的值。
库函数
*以下是头string.h中定义的功能:*
S.N. 函数及说明

1.void *memchr(const void *str, int c, size_t n)

搜索第一次出现的字符c(unsigned char类型)的前n个字节的字符串参数str指向。

2 int memcmp(const void *str1, const void *str2, size_t n)

比较str1和str2的前n个字节。

3 void *memcpy(void *dest, const void *src, size_t n)

从src复制n个字符到dest。

4 void *memmove(void *dest, const void *src, size_t n)

另一个函数来复制n个字符到str1。

5 void *memset(void *str, int c, size_t n)

复制字符c(unsigned char类型)的前n个字符的字符串参数str指向。

6 char *strcat(char *dest, const char *src)

追加src指向的字符串到dest指向的字符串的结束。

7 char *strncat(char *dest, const char *src, size_t n)

追加src指向字符串结尾的字符串指向dest中最多n个字符长。

8 char *strchr(const char *str, int c)

搜索第一次出现的字符串中的字符c(unsigned char类型)参数str指向。

9 int strcmp(const char *str1, const char *str2)

比较字符串str1指向指向的字符串str2。

10 int strncmp(const char *str1, const char *str2, size_t n)

str1和str2的前n个字节相比。

11 int strcoll(const char *str1, const char *str2)

比较字符串str1的STR2。其结果是依赖于位置LC_COLLATE设置。

12 char *strcpy(char *dest, const char *src)

复制字符串src指向到dest。

13 char *strncpy(char *dest, const char *src, size_t n)

副本最多n个字符的字符串src指向到dest。

14 size_t strcspn(const char *str1, const char *str2)

计算str1的起始段的长度完全包含在str2中的字符。

15 char *strerror(int errnum)

搜索一个内部数组的错误编号差错编号,并返回一个指向一个错误消息字符串。

16 size_t strlen(const char *str)

计算但不包括终止空字符的字符串str的长度。

17 char *strpbrk(const char *str1, const char *str2)

查找字符串str1在str2中指定的任何字符相匹配的第一个字符。

18 char *strrchr(const char *str, int c)

参数str指向的字符串中的字符c(unsigned char类型)最后一次出现的搜索。

19 size_t strspn(const char *str1, const char *str2)

计算str1中的初始段完全包含在str2中的字符的长度。

20 char *strstr(const char *haystack, const char *needle)

查找第一次出现的整个字符串针(不包括终止空字符)出现在字符串haystack中。

21 char *strtok(char *str, const char *delim)

中断字符串str分隔分离成一系列的记号。

22 size_t strxfrm(char *dest, const char *src, size_t n)

转换前n个字符的字符串src到校报的语言环境和将它们放置字符串dest。

字符串比较的一道题

/*关于字符串比较:编写函数int fun(char *s1,char *s2),在字符串s1中统计字符串s2出现的次数并返回。若s2在s1中未出现,则返回0。例如:若输入的字符串s1为:abaaAabcaabbabca,字符串s2为:ab ,则程序输出:n=4若输入的字符串s1为:abaaAabcaabbabca,字符串s2为:abd,则程序输出:No find#include<stdio.h>#include<string.h>int fun(char *s1,char *s2){}int main(){ char a[80],b[80];  int n;  printf("Please input the first string:");  gets(a);  printf("Please input the second string:");  gets(b);  n=fun(a,b);  if(n==0)    printf("No find\n");  else printf("n=%d\n",n);  return 0;}*/#include<stdio.h>#include<string.h>int fun(char *s1, char *s2){    int strlenth(char *);    //int alen = strlenth(s1);先弄错了,自己构造的函数    //int blen = strlenth(s2);    int alen = strlen(s1);    int blen = strlen(s2);    int n = 0;    for (int i = 0; i<alen - blen+1; i++)    {        int f = 0;        for (int j = i, k = 0; k<blen; k++, j++)            if (s1[j]== s2[k] )            {                f++;            };        if (f == blen)   n++;    }    return n;}/*int strlenth(char *q){    int i = 0,sum;    while(q[i] != '\0')    {        i++;        sum = i;    }    //printf("长度:%d", sum);    return sum;}*/int main(){    char a[80], b[80];    int n;    printf("Please input the first string:");    gets_s(a);    printf("Please input the second string:");    gets_s(b);    n = fun(a, b);    if (n == 0)        printf("No find\n");    else printf("n=%d\n", n);    return 0;}

总结:c语言存在库函数<string.h>
我觉得常用的:strlen函数来确定字符串长度。
strcpy函数复制后面的去前面的地址,

0 0
原创粉丝点击