字符串库

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值