【C语言进阶】字符串处理函数的介绍

C语言处理字符串完整版 【代码】C语言处理字符串完整版。 阅读详情

目录

前言:

一、字符串处理函数介绍:

1.strlen函数:

2.strcpy函数:

3.strcat函数:

4.strcmp函数:

5.strncpy函数:

6.strncat函数:

7.strncmp函数:

8.strstr函数:

9.strtok函数:

10.strerror函数:

11.memcopy函数:

12.memmove函数:

13.memcmp函数:

二、总结:


前言:

        本文我们将进入对字符串处理函数的学习,重点介绍处理字符和字符串的库函数的使用和注意事项。

一、字符串处理函数介绍:

      C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串或字符数组中。其中,字符串常量是用于那些对它不修改的字符串函数。

1.strlen函数:

        相信大家对strlen函数已经不陌生,在C语言初阶我们就经常使用这个函数了。

4cd5f613ea7a4d4e94d520fdfb38d19d.png

         strlen函数(string length)的作用是用于返回字符串结束标志‘\0’之前出现的字符个数,因此,strlen函数处理的字符串对象必须是以结束标志‘\0’结尾的字符串。其返回值类型是size_t类型,也就是无符号类型。

下面是strlen函数的基本使用方法:

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

int main()
{
    char arr1[] = "hellow";
    char arr2[] = { 'h','e','l','l','o','w','\0' };
    char arr3[] = { 'h','e','l','l','o','w' };
    
    int len1 = strlen(arr1);
    int len2 = strlen(arr2);
    int len3 = strlen(arr3);

    printf("%d ", len1);
    printf("%d ", len2);
    printf("%d ", len3);

    return 0;

}

该代码输出结果如下:

43fcc7552e9e4f648d7cbdca0b27a8d1.png

        我们使用字符型数组将字符串存储起来,接着使用strlen函数计算字符串‘hellow’中所有字符的数量(使用双引号初始化字符串时,编译器自动在最后面加上‘\0’),并可以可以使用一个整形变量接收strlen函数的返回值,进行打印。当没有结束标志时候,strlen会一直读下去,这也就是len3=33的原因。

        并且我们还说到,strlen函数的返回类型为无符号数,因此strlen函数不可以直接用来比较两个字符串的大小;例如:

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

int main()
{
    char arr1[] = "hellow";
    char arr2[] = "hel";
   
    if (strlen(arr2) - strlen(arr1)>0)
    {
        printf("arr2>arr1");
    }
    else
    {
        printf("arr2<arr1");
    }
    return 0;

}

        按照我们正常思路是3-6为-3,然后会执行else语句。但实际上:

0391c1e696e94d8ba43cbd8f27b9c21c.png

         这是因为strlen函数的返回类型是无符号类型,得出的结果也是无符号类型,于是原本第一位即符号位上的数字也将被作为数据的一部分,因而实际得出的结果是一个非常大的整数,也就是大于0,也就执行了if语句。

        如果你实在要比较大小的话,这边介绍两种方式:

方式一:

//用两个变量先存起来
#include<stdio.h>
#include<string.h>

int main()
{
    char arr1[] = "hellow";
    char arr2[] = "hel";
   
    int len1 = strlen(arr1);
    int len2 = strlen(arr2);

    if (len2-len1>0)
    {
        printf("arr2>arr1");
    }
    else
    {
        printf("arr2<arr1");
    }
    return 0;

}

方式二:

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

//强制类型转换
int main()
{
    char arr1[] = "hellow";
    char arr2[] = "hel";
   
    if ((int)strlen(arr2) - (int)strlen(arr1)>0)
    {
        printf("arr2>arr1");
    }
    else
    {
        printf("arr2<arr1");
    }
    return 0;

}

2.strcpy函数:

        在之前的学习中,strcpy函数也是我们经常使用的字符串处理函数之一。

10802c2f08ca490fa1d9d4973f0a5c3a.png

        strcpy函数(string copy)的作用是:可以将字符串从源地址复制到目的地址,通俗来讲就是用来实现字符串的复制和拷贝。并且它会将源地址内的结束标志‘\0’一并拷贝过去,因此源地址必须以‘\0’一并拷贝过去,因此源地址必须以‘\0’结尾,且目的地址也将以结束标识符结尾 。而且,因为其作用拷贝字符串,因此目标地址的空间必须足够大,必须有足够大的空间容纳下源地址内字符串,同时目的地址的空间必须是可变的,可修改的。

        下面是strpy函数的基本使用方式:

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

int main()
{
    const char arr1[] = "hellow";
    const char arr2[10] = { 0 };

    printf("%s\n", arr1);
    printf("%s\n", arr2);

    //strcpy(目的地址,源地址);
    strcpy(arr2, arr1);
    
    printf("%s\n", arr1);
    printf("%s\n", arr2);
    return 0;

}

        我们初始化字符数组arr中的内容,并使arr2中内容为空。首先我们将两个字符串进行打印,验证拷贝前两字符串中的存储内容。接着我们使用strcpy函数将字符数组arr1中的字符串拷贝至arr2中,并在此之前打印两数组中的内容对拷贝结果进行验证。

        我们要特别注意的是strcpy函数返回的是目标空间的起始地址,该函数设置返回值类型的实现链式访问。(以后会讲到,这里仅做了解)。

3.strcat函数:

        这个字符串处理函数就比较陌生了,在我们之前的学习中没有用到过,,甚至见都没有见过。

5520cc4e0d4c4e68ad379ef9a59d8242.png

        strcat函数(string catenate)的作用是:将源地址的字符串追加到目的地址。与字符串拷贝函数相同,它在进行补充追加时是从目的地址的结束标识符‘\0’开始追加的,追加至源地址的结束标识符停止的。且它同样要求目标地址内的空间必须足够大,要有足够的空间容纳下源地址内字符串,同时目的地址的空间必须是可变的、可修改的。

        下面是strcat函数的基本使用方式:

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

int main()
{
    const char arr1[20] = "hellow ";
    const char arr2[20] = "world";

    printf("%s\n", arr1);
    printf("%s\n", arr2);

    //strcat(目的地址,源地址);
    strcat(arr1, arr2);
    
    printf("%s\n", arr1);
    printf("%s\n", arr2);
    return 0;

}

        我们同样首先定义并初始化两个字符数组,接着打印他们验证他们各自内部的存储内容。然后通过是用strcat函数,我们将字符数组arr2中的内容,成功的追加补充倒了字符数组arr1中,并再次进行打印,验证追加补充的结果。

        注意,strcat函数无法追加自己。原因很好理解,我们在定义是就已经固定了字符数组的储存空间了,当追加自己时,相当于将自己与自己相同大小的字符数组,即两倍自身大小的数据放入自己的储存空间,可想而知一定是不可行的。

4.strcmp函数:

        dc3a7acff043435d8e2f6c2c2cad7e71.png

        strcmp函数(string compare)的作用是:按照顺序依次比较两字符串对应位置字符的ASCII码值(注意不是比较两字符串的长度哦),直到结束标识符‘\0’或对应位置的字符不同。若比较到结束标识符都没有不同则字符串相等,若两字符串对应位置字符有不同,谁的ASCII码值小,那个ASCII码值小的字符比较小。

同样的我们来看看strcmp的基本使用方式:

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

int main()
{
    const char arr1[20] = "abc";
    const char arr2[20] = "abz";

    int ret = strcmp(arr1, arr2);
    //如果arr1大于arr2,则返回大于0的数;
    //如果arr1等于arr2,则返回等于0的数;
    //如果arr1小于arr2,则返回小于0的数;

    if (ret > 0)
    {
        printf("arr1>arr2");
    }
    else if (ret == 0)
    {
        printf("arr1=arr2");
    }
    else
    {
        printf("arr1<arr2");

    }
    
    return 0;

}

        首先我们定义并初始化两个字符数组,接着对两个数组进比较,根据strcmp函数的比较结果得到返回值,再根据返回值反馈我们想要的字符串比较结果。

        这里的要点是:该函数的作用并不是比较字符串的长短,而是比较对应位置字符ASCII码值的大小。

5.strncpy函数:

c577a3f58ff343ecbbc6c6903c37a837.png

        strncpy函数(string number copy)的作用是:将指定长度的字符串复制到字符数组中,即表示把源地址中字符串开始的前n个字符拷贝到目的地址中。与strcpy相同,它同样会将源地址内的结束标识符‘\0'一并拷贝过去,因此源地址必须以’\0‘结尾,且目的地址也将以结束标识符结尾。并且因为其作用为拷贝字符串,所以目标地址内的空间必须足够大,要有足够的空间容纳下源地址内的字符串,同时目的地址空间必须是可变,可修改的。 

下面来看strncpy函数的基本使用方式:

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

int main()
{
    const char arr1[] = "hellow";
    const char arr2[10] = { 0 };

    printf("%s\n", arr1);
    printf("%s\n", arr2);

    //strcpy(目的地址,源地址,拷贝个数);
    strncpy(arr2, arr1,3);

    printf("%s\n", arr1);
    printf("%s\n", arr2);
    return 0;

}

        我们看到,使用该函数,我们成功的将字符数组arr1中前3个字符拷贝到字符数组arr2中,并且通过前后两次打印的打印验证了按指定长度拷贝操作完成。

ps:若源字符串的长度小于我们传递过去的参数,则拷贝完源字符串之后,将在后面加字符'\0',直至拷贝够参数规定的个数。

6.strncat函数:

00178ae0104f43f1973eee9719041478.png

        strncat函数(string number catenate)的作用:从源地址处将指定长度的字符串追加到目的地址中。与strcat类似,他在进行补充追加时,也是从目的地址的结束标识符'\0'开始追加的,不同的是追加到参数限制的字符数出停止。 但它同样要求目标地址内的空间必须足够大,要有足够的空间容纳下追加的字符串,同时目的地址的空间必须是可变的、可修改的。

strncat的基本使用方式:

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

int main()
{
    const char arr1[20] = "hellow ";
    const char arr2[20] = "world";

    printf("%s\n", arr1);
    printf("%s\n", arr2);

    //strcat(目的地址,源地址,追加个数);
    strncat(arr1, arr2,3);

    printf("%s\n", arr1);
    printf("%s\n", arr2);
    return 0;

}

        首先我们定义并初始化两个字符数组,接着打印追加前他们各自的内容,然后我们使用strncat函数有限制的从数组arr1向arr2追加了3个字符,最后进行打印验证。

7.strncmp函数:

65e5bc101e6a41f4a195ec5bd4fcf7c2.png

 strncmp函数(string number compare)的作用是:有限制的按照顺序依次比较两字符串对应位置字符的ASCII码值(注意不是比较两字符串的长度哦),直到参数限制数位置上的字符都比较结束或对应位置的字符不同。若参数限制位数位置上的字符都比较结束且都没有不同则两字符串相等,若两字符串对应位置字符有不同,谁的ASCII码值小,那个ASCII码值小的字符比较小。

下面是strncmp函数的基本使用方式:

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

int main()
{
    const char arr1[20] = "abcdef";
    const char arr2[20] = "abz";

    int ret = strncmp(arr1, arr2,3);
    //如果arr1大于arr2,则返回大于0的数;
    //如果arr1等于arr2,则返回等于0的数;
    //如果arr1小于arr2,则返回小于0的数;

    if (ret > 0)
    {
        printf("arr1>arr2");
    }
    else if (ret == 0)
    {
        printf("arr1=arr2");
    }
    else
    {
        printf("arr1<arr2");

    }

    return 0;

}

        其作用原理与作用过程跟strcmp十分类似,唯一不同便是限制了比较的字符数,所以就不过多阐述了。

8.strstr函数:

      8682146a00a744c8b21f2b2dd04ec5e9.png  

strstr函数(string string)的作用是:从一个字符串中寻找其字符串,通俗来讲就是从一个字符串中寻找另外一个字符串。若找到目标字符串则返回指向目标字符串的指针,若没有找到则返回空指针 。

我们来看看strstr函数的基本使用方式:

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

int main()
{
    const char arr1[20] = "abcdef";
    const char arr2[20] = "cd";

    //从arr1中找arr2;
    char* ps = strstr(arr1, arr2);

    if (ps == NULL)
    {
        printf("没找到\n");
    }
    else
    {
        printf("找到了:%s", ps);
    }

    

    return 0;

}

        我们定义并初始化了两个字符数组,并使用strstr函数进行字符串寻找,并使用了字符型指针接收函数的返回值,最后对接受了返回值的指针ps进行判断,若为空则为没有从数组arr1找到字符串arr2,反之则会找到了。

9.strtok函数:

46be62ef885641309f35c898fe333505.png

        strtok函数(string token)的作用是:将字符串分解为一组字符串。听起来有点懵,实际很简单。该函数有两个数组作为参数,他的实际作用便是将其中一个数组组为分割数组,在另一个数组中寻找这些“分割符”,并在分隔符处将这个数组内的字符串加上结束标识符'\0',将其分割成一组(多个)字符串。若第一个参数不为NULL;将找到字符数组中的第一个标记并保存他在字符串中的位置;若第一个参数为NULL,将在同一个字符串中被保存的位置开始,查找下一个标记。如果字符串中不存在更多的标记,则返回 NULL 指针。

下面是strtok函数的基本使用方式:

#include<stdio.h>
#include<string.h>
 
int main()
{
	char arr1[] = "1254594572@QQ.COM";
	char arr2[30] = { 0 };
	strcpy(arr2, arr1);
 
	const char* arr3 = "@.";
 
	printf("账号:%s\n", strtok(arr2, arr3));
	//找到第一个标记停止
	printf("服务商:%s\n", strtok(NULL, arr3));
	//从保存好的位置开始往后找
	printf("网址后缀:%s\n", strtok(NULL, arr3));
	//从保存好的位置开始往后找
 
	return 0;
}

        首先我们要知道,strtok 函数是会对数组本身进行操作的,所以我们为了保护原始数据,在定义并初始化好字符数组之后,又定义了一个新的数组并将原始数据拷贝过去,作为临时拷贝供我们进行操作。接着我们定义并初始化了分割符数组,函数将根据分割符数组 arr3 对 临时拷贝 arr2 进行分割。第一次执行函数时之前没有标记,于是直接进行操作找到第一个标记并分割打印。此时就已经存在标记了,再连续两次找到前一次执行作下的标记按照分割符将数组分割完毕并打印。
        但是上面的代码风格较为简陋、复杂,我们可以将上面段代码优化为:

#include<stdio.h>
#include<string.h>
 
int main()
{
	char arr1[] = "1254594572@QQ.COM";
	char arr2[30] = { 0 };
	strcpy(arr2, arr1);
 
	const char* arr3 = "@.";
 
	char* str = NULL;
	for (str = strtok(arr2, arr3); str != NULL; str = strtok(NULL, arr3))
	{
		printf("%s\n", str);
	}
 
	return 0;
}

ps:若字符串中不存在更多的标记,则返回 NULL 指针。

10.strerror函数:

ffac4da78a99485581c730e832f3f151.png

         strerror函数(string error)的作用:返回错误码对应的信息。即根据接收到的错误码(错误码errno为全局变量),返回错原因的详细信息。

下面是strerror函数的基本用法:

int main()
{
    int i = 0;
    for (i = 0; i <= 4; i++)
    {
        printf("错误原因:%s\n", strerror(i));
    }
    return 0;
}

11.memcopy函数:

8f90992d341241bda5ba88ac9f8f8ac4.png

memcpy函数(memory copy)的作用:从源内存空间向目的内存空间拷贝限制数量(单位是字节)的数据。它与 strcpy 函数类似,作用均为拷贝数据,不同的是 strcpy 仅仅只操作字符串故会在结束标识符 ' \0 ' 处停止,而 memcpy 函数操作的是内存,内存中的数据是相邻的,故不会在结束标识符处停止。

下面是memcpy函数的基本用法:

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

int main()
{
    int arr1[] = { 1,2,3,4,5,6 };
    int arr2[5] = { 0 };

    for (int i = 0; i < 5; i++)
    {
        printf("%d ", arr2[i]);
    }
    printf("\n");
    //mencpy(目的地址,源地址,拷贝的大小)
    memcpy(arr2, arr1, 16);

    for (int i = 0; i < 5; i++)
    {
        printf("%d ", arr2[i]);
    }
    return 0;
}

         我们首先创建并初始化了两个整形数组,接着打印出数组 arr2 内数据的存放情况。紧接着我们通过内存拷贝函数,将数组 arr1 内的前20个字节的数据拷贝给了 arr2数组。整型数组内每个数据元素所占的内存空间为4个字节,20个字节即将数组 arr1 中的前五个数据元素拷贝给了数组 arr2。最后再次打印数组 arr2 中的数据,验证拷贝结果。

ps:如果源内存空间和目标内存空间有任何重叠,复制的结果都是未定义的。

12.memmove函数:

c9df8557d883487b9a228df6ae0ef1ce.png

         memmove函数(memory move)的作用:弥补 memcpy 函数的不足,主要用于处理内存的重叠部分。即如果源空间和目标空间出现重叠,就得使用 memmove 函数来进行处理。

下面是memmove函数的基本用法:

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

int main()
{
    int arr1[] = { 1,2,3,4,5,6,7,8,9 };
    

    for (int i = 0; i < 7; i++)
    {
        printf("%d ", arr1[i]);
    }
    printf("\n");
    //mencpy(目的地址,源地址,拷贝的大小)
    memmove(arr1 + 2, arr1, 20);

    for (int i = 0; i < 7; i++)
    {
        printf("%d ", arr1[i]);
    }
    return 0;
}

        这个函数与 memcpy 函数除处理对象不同外,语法结构和使用场景等都极其类似,这里也就不再做过多赘述。

13.memcmp函数:

275b55d55c8b436b82db79ef8330c98f.png

         memcmp 函数(memory compare)的作用与 strcmp 函数的作用类似,不过 memcmp 函数是从内存的角度以字节为单位进行处理,故 memcmp 函数同样需要第三个参数进行限制,而不会在结束标识符 ' \0 ' 处停止比较。其它方面也就不再做过多赘述。 

memcmp 函数的基本使用方式:

#include<stdio.h>
#include<string.h>
 
int main()
{
	int arr1[] = { 1,2,3,4,5,6,7,8,9 };
	int arr2[] = { 1,2,3,4,5,9,6,7,8 };
 
	int ret = memcmp(arr2, arr1, 24);
 
	if (ret > 0)
	{
		printf("arr1 < arr2\n");
	}
	else if (ret == 0)
	{
		printf("arr1 = arr2\n");
	}
	else
	{
		printf("arr1 > arr2");
	}
 
	return 0;
}

二、总结:

        本文到此就结束了,主要为大家整理并讲解了常用字符串操作函数,希望对大家有所帮助,同时本文仍有许多不足之处,欢迎各位小伙伴们随时批评指正!

C语言的字符串处理 在C语言中,字符串是以字符数组的形式存储的一串字符。字符串以一个特殊的字符结束,称为空字符('\0'),它用来标识字符串的结束。c// 定义一个容量为100的字符数组C语言中的字符串处理是其编程语言特性的重要组成部分。虽然字符串在C语言中并不是一种原生数据类型,但通过字符数组及其标准库函数,我们能够进行丰富的字符串操作。掌握这些基本操作和标准库函数,对于开发各种应用程序都是十分重要的。本文简单介绍了字符串的定义、基本操作、标准库函数,以及一些常见的操作示例。 阅读详情

相关推荐

【C语言】字符串操作函数详解

这些头文件提供了字符串操作所需的函数声明。以下是常用字符串操作函数的详细讲解,包括每个函数的参数、返回值说明以及示例代码。每个函数的使用说明还包括了适当的表格以帮助理解其功能和用法。

LuckiBit 1927

常用的8种字符串处理函数

常用的8种字符串处理函数

qq_45890458的博客 7130

Calibre LVS效率翻倍秘籍:用Hierarchical Flow处理亿级晶体管设计的5个关键阶段

本文详细解析了如何利用Hierarchical Flow技术提升Calibre LVS在亿级晶体管SoC设计中的验证效率。通过五个关键阶段的分层验证流程,包括顶层抽象验证、模块级独立验证等,可显著降低内存占用40-60%,缩短迭代周期50-70%,特别适用于SMIC等先进工艺节点。文章还分享了算力资源优化、并行化处理等实战技巧,帮助工程师应对大规模芯片验证挑战。

sam99的博客 768

C语言学习(四)——字符串处理函数

字符串处理函数(17个) 1) gets() #include<stdio.h> char*gets(char*s); 功能: 从标准输入读入字符,并保存到s指定的内存空间,直到出现换行符或读到文件结尾为止。 参数: s:字符串首地址 返回值: 成功:读入的字符串 失败:NULL gets(str)与scanf(“%s”,str)的区别: ge...

个人练习生 2417

Windows 24H2升级后eNSP AR_40报错40?VirtualBox虚拟化修复指南

虚拟化技术通过Hypervisor在操作系统与硬件间建立抽象层,使虚拟机能够共享物理资源。其核心原理依赖CPU的VT-x/AMD-V指令集,而Windows 24H2对内核隔离与驱动签名的强化会直接占用或拦截这些虚拟化资源。在工程实践中,VirtualBox作为Type-2型Hypervisor,常因内存完整性开启或版本过旧导致虚拟网卡创建失败,进而引发设备启动中断。典型场景包括网络仿真实验、多系统测试环境搭建等。当eNSP的AR_40路由器依赖VirtualBox引擎时,24H2的安全策略变更便会触发错误

weixin_34375251的博客 216

Field-Oriented Control (FOC) 矢量控制 磁场定向控制

Field-Oriented Control (FOC) 磁场定向控制(FOC),也称为矢量控制,是一种用于控制永磁同步电动机(PMSM)和交流感应电动机(ACIM)的技术。 FOC在整个扭矩和速度范围内都具有良好的控制能力。 FOC的实现需要将定子电流从固定参考系转换为转子磁通参考系(也称为d-q参考系)。 速度控制和转矩控制是FOC最常用的控制模式。位置控制模式不太常见。大多数牵引应用使用转矩控制模式,在该模式下,电动机控制系统遵循参考转矩值。在速度控制模式下,电机控制器遵循参考速度值,并生成用于形成内

>>> 1万+

[总结] C字符串常用处理函数

C字符串常用处理函数 C的字符串一直是我很头疼的一个东东,所以自己总结一下 Char* 字符串数组 所有函数都是带入地址,也就是可以指定开始位置 -->strlen() 顾名思义,返回字符串数组的长度,但是它是以O(n)的效率计算的,所以尽量不要写成 for(int i=0;i<strlen(a);i++) 这样如果多了的话,时间会大大降低,可以用...

diying4157的博客 192

打通Creo与Matlab的桥梁:Simscape Multibody Link插件安装与配置全攻略

本文详细介绍了Simscape Multibody Link插件的安装与配置全流程,旨在帮助机械工程师和开发者打通Creo与Matlab/Simulink之间的桥梁,实现CAD模型到多体动力学仿真的高效转换。文章重点解析了版本兼容性、管理员权限、注册文件配置等关键步骤与常见故障排查方法,助力用户快速建立设计与仿真一体化工作流。

rrr55的博客 634

C语言进阶——字符串函数

C语言进阶——字符串函数 都在头文件“#include<string.h>”中。 1.strlen函数——测字符串长度,遇到‘\0’停止。返回值为一个无符号整型。 函数原型:size_t strlen( const char *string ); 函数参数:字符类型指针(也就是字符串的首地址)——char * 2.strcpy函数——字符串拷贝。 函数参数(2个):目标字符串(strDestination)地址和源字符串(strSource)地址,返回值为目标字符串地址。 函数原型:char *

qq_45841205的博客 563

WSL2不能上网,Failed to connect to github.com port 443问题解决方案

WSL2不能上网: 问题:ping外网无效 例如:ping www.baidu.com失败 解决方案: 在wsl: $sudo vi /etc/wsl.conf wsl.conf: [network] generateResolvConf = false 在PowerShell: $sudo vi /etc/etc/resolv.conf resolv.conf: # This file was automatically generated by WSL. To stop automatic gen

Jason_Chen__的博客 9525

uniapp - 强力解决 swiper 轮播图内嵌套视频导致滑动不流畅卡顿问题,轮播滑块视图容器里既有图片也有视频video组件共同存在出现滑动切换特别卡,轮播组件包裹视频播放器加载慢及层级过高解决

uni-app,h5移动端网页,微信小程序,支付宝小程序,Android安卓,苹果ios,app,nvue,swiper,轮播图,轮播图嵌套视频,卡顿,加载慢,左右滑动不流畅,很卡,滑动过快就会卡住,uniapp使用swiper组件里嵌套视频与图片如何解决卡顿问题,详细解决教程,swiper里有视频video,播放器,视频+图片轮播,层级过高及卡顿问题,没等看完视频就自动切换了,报错,无法加载播放,uniapp的App安卓苹果端,video老是加载,APP端video组件播放视频卡顿,抖音,快手,上下滑动视

🏆 前端领域优质创作者 1万+

【C语言】字符/字符串+内存函数

Ⅰ、字符函数和字符串函数 1.strlen 2.strcpy 3.strcat 4.strcmp 5.strncpy 6.strncat 7.strncmp 8.strstr 9.strtok 10.strerror 11.字符函数 12. 字符转换函数 Ⅱ、内存函数

2301_77438812的博客 838

后台管理系统-7-vue3之引入配置文件baseURL

mock=false,本地模拟。mock=true,线上模拟。baseURL+url=实际请求的URL。get请求param参数,post请求data参数。

qq_20466211的博客 208

调用字符串库函数c语言,C语言字符串库函数的实现

1.strlen(字符串的长度)size_t Strlen(const char* str){assert(str);for (size_t i = ;; ++i){if (str[i] == '\0')return i;}}size_t StrlenByRecursion(const char* str){return *str == '\0' ? : StrlenByRecursion(st...

weixin_39868248的博客 753

项目篇 | 图书管理系统 | 管理员模块 | 概述

图书管理系统管理员模块概述

百栗.的博客 404

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C语言进阶栏目

C语言知识点汇总!望对各位道友有所帮助!

随便写写 777

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C语言 详解字符函数和字符串函数以及实现

C语言库函数

qq_20963687的博客 986

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

字符串总结

/ 不安全,可能缓冲区溢出。// 使用strtok函数。

SZHaxn的博客 909

c语言比较xy大小指针,C语言教案8-指针

《C语言教案8-指针》由会员分享,可在线阅读,更多相关《C语言教案8-指针(23页珍藏版)》请在人人文库网上搜索。1、,C语言程序设计,第8章指针,.,地址和指针,在计算机中,内存是用来存储程序和数据的部件。为了便于存储,通常把内存划分成许多个存储单元,并且对存储单元进行编号,存储单元的编号称为地址。地址通常以字节为单位进行编址。在C语言中地址是指数据在内存中存放的起始位置,如:变量(整型、浮点型...

weixin_39621860的博客 414

17个C语言字符串处理函数

17个C语言字符串处理函数

CltCj的博客 1万+

C语言基础之字符串处理函数

出现的字符 c​ 返回:​ 成功返回地址​ 失败返回NULL。

qq1074237849的博客 2522

【C语言】字符串处理函数

字符串拷贝函数strcpy,strncpy。字符串拼接函数strcat,strncat。字符串比较函数strcmp,strncmp。字符串格式化输入,输出函数sprintf,sscanf。字符串查找函数strchr 查找字符,strstr 查找子串。字符串分割函数strtok。字符串转化atoi,atof,atol。需要头文件 #include

2301_80035097的博客 1420

C语言常用字符串处理函数(一)

C语言常用字符串处理函数(一) 我们经常会遇到要用C语言来直接处理字符串,了解这些函数,编写起代码来能够事半功倍,这也是字符串处理的基础。

Allen Junyu 1万+

【C语言】常见的字符串处理函数

本篇文章为大家详细讲解C语言中常用的几种字符串处理函数及其用法,让我们一起来学习吧!

m0_65292176的博客 3164

C语言之字符串处理函数

函数功能:在字符串中查找给定字符的最后一次匹配,也就是在字符串str中查找字符c最后一次出现的位置返回值:最后一次匹配位置的指针if (ptr)elseif (ptr)elsegetch();return 0;运行结果是:注意:本例程中,如果字符串中只有一个’o’字符,那么无论调用哪种字符串中字符匹配函数都会返回相同的结果。

上善若泪 1771

C语言字符串处理函数总结

使用这些函数时,记得写头文件 #include<string.h> char str1[] = "Hello World!"; char str2[] = "Hello milk!"; 1、strcpy 原型:strcpy(str1,str2); 功能:将str2中的字符串复制到str1中。 返回:str1 strcpy(str1, str2); printf("%s\...

qq_36798713的博客 9996
上一篇: 【C语言进阶】详谈指针
下一篇: 【C语言进阶】详解结构体
情缘晓梦.
博客等级 码龄4年 103粉丝 52原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值