各种字符串函数的介绍(1)

包括 strlen, strcpy, strcmp, strcat, strstr。


前言

这里介绍的只是一部分,剩下的小编会继续在以后的文章中详写。

一、各种函数的大致介绍

我们首先介绍的函数包括strlen,strcpy,strcmp,strcat,strstr,strncpy,strncmp,strncat函数。 

  1. strlen:是求字符串的长度。
  2. strcpy:是字符串拷贝函数。
  3. strcmp:是字符串比较函数。
  4. strcat: 是字符串追加函数。
  5. strstr:是找子串函数。

二、函数的详细介绍

strlen函数

求相应的字符串的长度,例如“abcdef”,求这个字符串的长度,用strlen("abcdef")可得出有6个字符,在这里注意strlen求的是 \0 之前的字符串的长度

同时注意要引用库函数#include<string.h>

#include<stdio.h>
#include<string.h>//这里是调用字符串函数所需要的库函数

int main()
{
    char arr[20] = "abcdef";
    int num = strlen(arr);
    printf("%d\n",num);
    return 0;
}

strcpy函数 

字符串拷贝函数,将一个字符串拷贝到另一个字符串之中

例如: 这儿有

char str1[20] = "abcdef";

char str2[20] = "hello";

strcpy(str1,str2);//注意这里的前后顺序,后面的str2是需要拷贝的字符串。

//1. 这里将str2覆盖到str1之中,此时的str1[20]就变成了hello。

//2.注意str2中的‘\0’也拷贝到了str1之中。

#include<stdio.h>
#include<string.h>//同样需要库函数

int main()
{
    char str1[20] = "abcdef";
    char str2[10] = "hello";
    strcpy(str1,str2);
    printf("%s\n",str1);
    return 0;
}

strcmp函数:

字符串比较函数,用于比较两个字符串的大小,我们知道字符串之间的比较是不能像整数那样运用大于,小于或者等于来比较的。

我们来举个例子:

char str1[20] = "abcdef";

char str2[20] = "abcd";

strcmp(str1,str2);//运用这个函数,我们可知str1大于str2的,这是就会返回一个大于0的数。

char str1[20] = "abcdef";

char str2[20] = "abcd";

strcmp(str2,str1);//而这个时候就会返回一个小于0的数。

char str1[20] = "abcdef";

char str2[20] = "abcdef";

strcmp(str1,strt2);//这时候函数会返回一个等于0的数。

#include<stdio.h>
#include<string.h>

int main()
{
       char str1[20] = "abcdef";
       char str2[20] = "abcd";
       int ret = strcmp(str1,str2);//函数会返回相应的值,ret用于接收。
       if(ret>0)
       {
              printf("str1 > str2\n");
       }else if(ret<0)
       {
              printf("str1 < str2\n");
       }else
       {
              printf("str1 = str2");
       }
       return 0;
}

strcat函数 :

字符串追加函数,在一个字符串后面追加另一个字符串。(是追加不是覆盖)。

例如:

char str1[20] = "abcdef";

char str2[20] = "abcd";

strcat(str1,str2);//这表示在str1后面追加str2,也就是在str1后面加上str2字符串,这样结果就变成了str1[20] = "abcdefabcd"。

需要注意的是追加,不是像strcpy那样覆盖,把str1的值变成str2,而是在str1的后面追加str2.

 同时值得注意的是在追加的时候,将 \0 也追加了过去。

#include<stdio.h>
#include<string.h>

int main()
{
       char str1[20] = "abcdef";
       char str2[20] = "abcd";
       strcat(str1,str2);
       printf("%s\n",str1);
       return 0;
}

 strstr函数:

在目标串中找子串,也就是可以判断一个字符串是否是另一个字符串的子串。

如果一个字符串是另一个字符串的子串,函数就会返回一个不为 0 的数。

如果不是,则函数就会返回一个 0 。

如果用指针,函数返回值为空,则就子串不匹配。

同时也可以打印子串初始出现的位置往后的字符串,也就是既可以判断,也可以打印。

若用于打印,例如:

char str1[20] = "abcdef";

char str2[20] = "bcd";

char *p = strstr(str1,str2);//我们知道从b开始str2和str1中的串相匹配,这时就会打印str1中从b开始包括b往后的字符串,就会打印 bcdef。

 若是创建临时变量接收函数(用于判断)

#include<stdio.h>
#include<string.h>

int main()
{
       char str1[20] = "abcdef";
       char str2[20] = "abmm";
       int ret = strstr(str1,str2);
       if(ret == 0)
       {
              printf("不匹配\n");
       }else
       {
              printf("匹配成功\n");
       }
       return 0;
}

 若是用指针(用于判断)

#include<stdio.h>
#include<string.h>

int main()
{
       char str1[20] = "abcdef";
       char str2[20] = "abmm";
       char* ret = strstr(str1,str2);
       if(ret == NULL)
       {
              printf("不匹配\n");
       }else
       {
              printf("匹配成功\n");
       }
       return 0;
}

打印母串中子串初始位置以后的字符串 (首次出现为准)

#include<stdio.h>
#include<string.h>

int main()
{
       char str1[20] = "abcdef";
       char str2[20] = "bcd";
       char* ret = strstr(str1,str2);
       if(ret == NULL)
       {
              printf("不匹配\n");
       }else
       {
              printf("%s\n",ret);
       }
       return 0;
}


总结

在这里我们先介绍这几个字符串操作函数,更多的字符串操作函数,小编会在以后的作品中持续的更新,当然这里也是大致的介绍,更深层次的理解,小编也会在后面单独对每个字符串函数进行详细的讲解。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学编程的土豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值