[大师C语言(第二十五篇)]C语言字符串探秘
引言
字符串是编程中不可或缺的基本数据类型之一,它用于表示和操作文本数据。在C语言中,字符串以一种独特的方式实现,与许多其他编程语言的处理方式不同。本文将深入探讨C语言字符串背后的技术,帮助你更好地理解和应用字符串。
第一部分:字符串的基本概念和操作
1.1 字符串的定义
在C语言中,字符串不是作为一个独立的内置数据类型,而是作为字符数组来处理的。一个字符串是由一系列字符组成的序列,以一个特殊的字符’\0’(空字符)作为结束标志。
char str[] = "Hello, World!";
在上面的例子中,str
是一个包含14个字符的数组,其中最后一个字符是空字符’\0’,用来表示字符串的结束。
1.2 字符串的初始化
字符串可以像普通数组一样初始化,也可以使用字符串字面量来初始化。
char str[] = "Hello"; // 自动计算长度,包含空字符
char str2[10] = "Hello"; // 明确指定长度,空字符会被自动添加
1.3 字符串的长度
C语言中没有内置的字符串长度函数,因此通常需要自己编写函数来计算字符串的长度。
#include <stdio.h>int getStringLength(const char *str) {int length = 0;while (*str != '\0') {length++;str++;}return length;
}int main() {char str[] = "Hello, World!";printf("The length of the string is: %d\n", getStringLength(str));return 0;
}
1.4 字符串的输出
可以使用printf
函数来输出字符串。
#include <stdio.h>int main() {char str[] = "Hello, World!";printf("%s\n", str);return 0;
}
1.5 字符串的输入
可以使用scanf
或gets
函数来从用户输入读取字符串。gets
函数存在安全风险,因为它不检查字符串长度,可能导致缓冲区溢出。因此,通常建议使用fgets
函数。
#include <stdio.h>int main() {char str[20];printf("Enter a string: ");fgets(str, sizeof(str), stdin);printf("You entered: %s\n", str);return 0;
}
1.6 字符串的连接
在C语言中,字符串的连接需要手动实现,因为没有内置的字符串连接函数。
#include <stdio.h>
#include <string.h>void stringConcat(char *dest, const char *src) {while (*dest != '\0') {dest++;}while (*src != '\0') {*dest = *src;dest++;src++;}*dest = '\0';
}int main() {char str1[20] = "Hello, ";char str2[] = "World!";stringConcat(str1, str2);printf("Concatenated string: %s\n", str1);return 0;
}
总结
在第一部分中,我们介绍了C语言字符串的基本概念和操作,包括字符串的定义、初始化、长度计算、输出、输入以及字符串的连接。这些知识是理解C语言字符串的基础,为后续深入探讨字符串的更高级应用打下了坚实的基础。在下一部分中,我们将继续探讨字符串的更多操作和特性。
第二部分:字符串的更多操作和特性
2.1 字符串比较
在C语言中,字符串比较通常使用strcmp
函数,该函数来自string.h
头文件。strcmp
函数比较两个字符串,返回三个可能的值:0(如果字符串相等)、小于0(如果第一个字符串在字典顺序上小于第二个字符串)或大于0(如果第一个字符串在字典顺序上大于第二个字符串)。
#include <stdio.h>
#include <string.h>int main() {char str1[] = "Apple";char str2[] = "Banana";int result = strcmp(str1, str2);if (result < 0) {printf("str1 is less than str2\n");} else if (result > 0) {printf("str1 is greater than str2\n");} else {printf("str1 is equal to str2\n");}return 0;
}
2.2 字符串复制
字符串复制使用strcpy
函数,该函数同样来自string.h
头文件。strcpy
函数将源字符串复制到目标字符串中,确保目标字符串有足够的空间来存储复制的字符串。
#include <stdio.h>
#include <string.h>int main() {char str1[] = "Hello, World!";char str2[20];strcpy(str2, str1);printf("Copied string: %s\n", str2);return 0;
}
2.3 字符串子串
提取字符串的子串可以使用strncpy
函数,该函数允许指定要复制的字符数量。如果要确保子串以空字符结尾,需要手动添加空字符。
#include <stdio.h>
#include <string.h>int main() {char str[] = "Hello, World!";char subStr[10];strncpy(subStr, str, 5); // 复制前5个字符subStr[5] = '\0'; // 确保子串以空字符结尾printf("Substring: %s\n", subStr);return 0;
}
2.4 字符串查找
在字符串中查找子串或字符可以使用strstr
函数(查找子串)或strchr
函数(查找字符)。strstr
函数返回子串在字符串中首次出现的位置的指针,如果没有找到则返回NULL。strchr
函数返回字符在字符串中首次出现的位置的指针,如果没有找到则返回NULL。
#include <stdio.h>
#include <string.h>int main() {char str[] = "Hello, World!";char *pos = strstr(str, "World");if (pos != NULL) {printf("Substring found: %s\n", pos);} else {printf("Substring not found.\n");}return 0;
}
2.5 字符串转换
字符串与数值之间的转换在C语言中需要手动实现。可以使用atoi
(整数转换)和atof
(浮点数转换)等函数,这些函数同样来自stdlib.h
头文件。
#include <stdio.h>
#include <stdlib.h>int main() {char str[] = "123";int num = atoi(str);printf("String to integer: %d\n", num);return 0;
}
总结
在第二部分中,我们介绍了C语言字符串的一些高级操作和特性,包括字符串比较、复制、子串提取、查找以及字符串与数值的转换。这些操作和特性是处理C语言字符串时常用的高级工具,它们增加了编程的灵活性和功能。在下一部分中,我们将继续深入探讨字符串的其他高级应用和技巧。
第三部分:字符串的高级应用和技巧
3.1 字符串的分割
在C语言中,字符串的分割通常需要手动实现。一种常见的方法是使用strtok
函数,它可以从字符串中提取子串,并将剩余的字符串作为下一次调用的参数。
#include <stdio.h>
#include <string.h>int main() {char str[] = "One, Two, Three";char *token;token = strtok(str, ",");while (token != NULL) {printf("Token: %s\n", token);token = strtok(NULL, ",");}return 0;
}
3.2 字符串与函数参数
在C语言中,字符串可以通过指针作为函数参数传递。这使得函数可以修改字符串的内容。
#include <stdio.h>void modifyString(char *str) {str[0] = 'H'; // 修改第一个字符str[1] = 'e'; // 修改第二个字符
}int main() {char str[] = "Hello";modifyString(str);printf("Modified string: %s\n", str);return 0;
}
3.3 字符串与结构体
在C语言中,字符串可以与结构体结合使用,以存储复杂的数据。
#include <stdio.h>typedef struct Person {char name[50];int age;
} Person;int main() {Person person = {"John", 30};printf("Name: %s, Age: %d\n", person.name, person.age);return 0;
}
3.4 字符串与文件操作
在C语言中,字符串可以用于文件操作,如读取文件内容、写入文件等。
#include <stdio.h>
#include <stdlib.h>int main() {FILE *file = fopen("example.txt", "r");if (file != NULL) {char buffer[200];while (fgets(buffer, sizeof(buffer), file) != NULL) {printf("%s", buffer);}fclose(file);}return 0;
}
3.5 字符串与标准库
C语言提供了丰富的字符串处理函数,这些函数通常位于string.h
和stdlib.h
头文件中。使用这些函数可以简化字符串处理,提高编程效率。
#include <stdio.h>
#include <string.h>int main() {char str[] = "Hello, World!";strncat(str, "!", 1); // 添加字符到字符串printf("Modified string: %s\n", str);return 0;
}
总结
在第三部分中,我们探讨了C语言字符串的一些高级应用和技巧,包括字符串的分割、与函数参数的结合、与结构体的结合、与文件操作的结合以及与标准库的结合。这些高级应用和技巧展示了C语言字符串的强大功能和灵活性,它们使得字符串处理更加高效和方便。在下一部分中,我们将探讨字符串在实际编程中的常见问题和最佳实践。
第四部分:字符串的常见问题和最佳实践
4.1 字符串的安全性问题
在C语言中,字符串操作可能会引发安全问题,如缓冲区溢出。为了避免这些问题,应该遵循一些最佳实践,如使用strncpy
而不是strcpy
,使用fgets
而不是gets
,以及确保字符串缓冲区有足够的空间。
#include <stdio.h>
#include <string.h>int main() {char str[20];printf("Enter a string: ");fgets(str, sizeof(str), stdin);printf("You entered: %s\n", str);return 0;
}
4.2 字符串的内存管理
在C语言中,字符串通常作为字符数组处理,这意味着它们需要手动管理内存。为了避免内存泄漏,应该在不再需要字符串时释放其内存。
#include <stdio.h>
#include <stdlib.h>int main() {char *str = (char *)malloc(20 * sizeof(char));if (str != NULL) {strcpy(str, "Hello");printf("Memory allocated: %s\n", str);free(str); // 释放内存str = NULL; // 避免野指针}return 0;
}
4.3 字符串与指针
在C语言中,字符串与指针紧密相关。字符串通常作为字符数组处理,而指针可以用来操作字符串。
#include <stdio.h>int main() {char str[] = "Hello, World!";char *p = str;printf("String: %s\n", str);printf("Pointer: %s\n", p);return 0;
}
4.4 字符串与字符串函数
C语言提供了丰富的字符串处理函数,这些函数通常位于string.h
和stdlib.h
头文件中。使用这些函数可以简化字符串处理,提高编程效率。
#include <stdio.h>
#include <string.h>int main() {char str[] = "Hello, World!";strcpy(str, "Hello, World!"); // 复制字符串strcat(str, "!"); // 连接字符串printf("Modified string: %s\n", str);return 0;
}
4.5 字符串与多字节字符
C语言的字符串通常假设每个字符占用一个字节。如果字符串包含多字节字符,如中文字符,则需要特别处理。
#include <stdio.h>int main() {char str[] = "你好"; // 包含中文字符的字符串printf("String: %s\n", str);return 0;
}
总结
在第四部分中,我们探讨了C语言字符串的一些常见问题和最佳实践,包括字符串的安全性问题、内存管理、与指针的关系、与字符串函数的结合以及处理多字节字符。这些知识点有助于避免编程中的常见错误,提高程序的健壮性和效率。在最后一部分中,我们将通过一些实际的编程示例来巩固和运用这些知识。
第五部分:字符串的实际编程示例
5.1 示例:字符串拼接
在这个示例中,我们将使用字符串拼接来创建一个问候语。
#include <stdio.h>
#include <string.h>int main() {char name[50];printf("Enter your name: ");fgets(name, sizeof(name), stdin);name[strcspn(name, "\n")] = 0; // 移除输入中的换行符char greeting[] = "Hello, ";strcat(greeting, name);strcat(greeting, "!");printf("Greeting: %s\n", greeting);return 0;
}
5.2 示例:字符串排序
在这个示例中,我们将使用字符串比较函数来对字符串进行排序。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int compareStrings(const void *a, const void *b) {return strcmp(*(const char **)a, *(const char **)b);
}int main() {char names[] = {"John", "Alice", "Bob", "Eve"};qsort(names, 4, sizeof(char *), compareStrings);printf("Sorted names: ");for (int i = 0; names[i] != NULL; i++) {printf("%s ", names[i]);}printf("\n");return 0;
}
5.3 示例:字符串查找
在这个示例中,我们将使用字符串查找函数来查找一个单词在一个文本文件中的所有出现。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main() {FILE *file = fopen("example.txt", "r");if (file != NULL) {char word[50];printf("Enter a word to search for: ");fgets(word, sizeof(word), stdin);word[strcspn(word, "\n")] = 0; // 移除输入中的换行符while (fgets(word, sizeof(word), file) != NULL) {char *pos = strstr(word, "search");if (pos != NULL) {printf("Found: %s\n", pos);}}fclose(file);}return 0;
}
5.4 示例:字符串替换
在这个示例中,我们将使用字符串复制和查找函数来替换一个单词在一个文本文件中的所有出现。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main() {FILE *file = fopen("example.txt", "r+");if (file != NULL) {char word[50];printf("Enter a word to replace: ");fgets(word, sizeof(word), stdin);word[strcspn(word, "\n")] = 0; // 移除输入中的换行符while (fgets(word, sizeof(word), file) != NULL) {char *pos = strstr(word, "replace");if (pos != NULL) {pos[0] = 'r';pos[1] = 'e';pos[2] = 'p';pos[3] = 'l';pos[4] = 'a';pos[5] = 'c';pos[6] = 'e';pos[7] = 'd';}}fclose(file);}return 0;
}
5.5 示例:字符串与文件操作
在这个示例中,我们将使用字符串和文件操作函数来创建一个文本文件并写入字符串。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main() {FILE *file = fopen("output.txt", "w");if (file != NULL) {char content[] = "This is the content of the file.";fputs(content, file); // 将字符串写入文件fclose(file);} else {perror("Error opening file");}return 0;
}
总结
在第五部分中,我们通过一系列实际的编程示例来展示了C语言字符串的实际应用。这些示例包括字符串拼接、排序、查找、替换以及字符串与文件操作的结合。这些示例不仅加深了我们对字符串的理解,还提供了在实际编程中应用字符串的最佳实践。通过这些示例,我们可以更好地理解字符串在C语言编程中的重要性,并能够在实际应用中更加有效地使用它。
相关文章:
[大师C语言(第二十五篇)]C语言字符串探秘
引言 字符串是编程中不可或缺的基本数据类型之一,它用于表示和操作文本数据。在C语言中,字符串以一种独特的方式实现,与许多其他编程语言的处理方式不同。本文将深入探讨C语言字符串背后的技术,帮助你更好地理解和应用字符串。 …...
xLua(一) 环境安装笔记
为了方便查阅记录一下xLua的安装地址及方法 1.登录地址下载: https://github.com/Tencent/xLua 2.解压文件 将文件中的这些内容拷贝到项目中的Asset文件夹中 注意 : 工程项目路径不得含有中文 3.将Tools复制到Asset同级目录下 4.导入后会发现有Bug,需要导入工程 5.还有另…...
Python基础教程(十一):数据结构汇总梳理
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝Ὁ…...
制造型企业图纸泄露问题,如何从根源解决核心文件资料泄露问题?
制造型企业最核心重要的文件当然是图纸,图纸在制造型企业中起到关键主导地位,如果图纸泄露与研发性企业源代码被泄露一样的严重,制造型企业如何保护核心图纸不被外泄是企业在日常经营过程中的重要组成部分,现在有很多防止泄露的产…...
英伟达最新GPU和互联路线图分析
Nvidia在计算、网络和图形领域独树一帜,其显著优势在于雄厚的资金实力及在生成式人工智能市场的领先地位。凭借卓越的架构、工程和供应链,Nvidia能够自由实施创新路线图,引领行业未来。 到 21 世纪,Nvidia 已经是一个非常成功的创…...
Github 2024-06-10 开源项目日报 Top10
根据Github Trendings的统计,今日(2024-06-10统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量C项目2Go项目2PHP项目1Blade项目1TypeScript项目1Lua项目1Dart项目1Swift项目1Cuda项目1Python项目1MDX项目1Ventoy: 100%开源的可启动USB解决方…...
前后端分离项目中Spring Boot返回的时间与前端相差8个小时
概述 今天在做一个前后端分离项目时,发现从后端获取的时间与从数据库获取的时间相差八个小时,最终排查后发现由于Springboot使用本地时区导致,修改SpringBoot时区后解决 环境 MySQL8SpringBoot 原因排查 发现从后端获取的数据总是比前端快八个小时 …...
stm32MP135裸机编程:使用USB/UART烧录程序到SD卡并从SD卡启动点亮一颗LED灯
0 参考资料 轻松使用STM32MP13x - 如MCU般在cortex A核上裸跑应用程序.pdf STM32CubeProgrammer v2.16.0 烧录需要的二进制文件1 烧录到SD卡需要哪些文件 参考《轻松使用STM32MP13x - 如MCU般在cortex A核上裸跑应用程序》,烧录需要的SD卡文件如下: &a…...
【NoSQL数据库】Redis Cluster集群(含redis集群扩容脚本)
Redis Cluster集群 Redis ClusterRedis 分布式扩展之 Redis Cluster 方案功能数据如何进行存储 redis 集群架构集群伸缩向集群中添加一个新的master节点,并向其中存储 num10 .脚本对redis集群扩容缩容,脚本参数为redis集群,固定从6001移动200…...
重邮计算机网络803-(2)物理层
一.物理层 1.介绍 物理层的主要任务描述为确定与传输媒体的接口的一些特性,即: ①机械特性 指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等。 ②电气特性 指明在接口电缆的各条线上出现的电压的范围。 ③功能特性 指明某条线上…...
uniapp使用webview内嵌H5的注意事项
一、描述 uniapp项目中构建app,需要内嵌H5页面,在使用webview时,遇到了以下几个问题: 内嵌H5,默认全屏显示;内嵌页面遮挡住了app的自定义tabbar组件;样式修改无效; 二、解决方案&a…...
现代 C++的高效并发编程模式
现代C提供了许多高效的并发编程模式,以满足日益增长的多核和分布式系统的需求。以下是一些常用的高效并发编程模式: 异步编程:使用std::async来创建异步任务,可以在后台执行任务,将结果返回给调用者。 并行编程&#…...
汇编语言作业(五)
目录 一、实验目的 二、实验内容 三、实验步骤以及结果 四、实验结果与分析 五、 实验总结 一、实验目的 1.熟悉掌握汇编语言的程序结构,能正确书写数据段、代码段等 2,利用debug功能,查看寄存器(CS,IP,AX,DS..)及数据段的…...
收音机的原理笔记
1. 收音机原理 有线广播:我们听到的声音是通过空气振动进行传播,因此可以通过麦克风(话筒)将这种机械振动转换为电信号,传到远处,再重新通过扬声器(喇叭)转换为机械振动,…...
排序算法案例
排序算法概述 排序算法是计算机科学中的一个重要主题,用于将一组数据按特定顺序排列。排序算法有很多种,每种算法在不同情况下有不同的性能表现。不同的排序算法适用于不同的场景和数据特征。在选择排序算法时,需要考虑数据规模、数据分布以…...
时间序列评价指标
评价指标 均方误差( M S E MSE MSE) 定义:预测值与实际值之间差异的平方和的平均值。公式: ( M S E 1 n ∑ i 1 n ( y i − y ^ i ) 2 ) (MSE \frac{1}{n}\sum_{i1}^{n}(y_i - \hat{y}_i)^2) (MSEn1∑i1n(yi−y^i)…...
Docker:安装 Orion-Visor 服务器运维的技术指南
请关注微信公众号:拾荒的小海螺 博客地址:http://lsk-ww.cn/ 1、简述 Orion-Visor 是一种用于管理和监控容器的工具。它提供了一个直观的界面,用于查看容器的状态、资源使用情况以及日志等信息。在这篇技术博客中,我们将介绍如何…...
HarmonyOS Next 系列之底部标签栏TabBar实现(三)
系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现(一) HarmonyOS Next 系列之验证码输入组件实现(二) HarmonyOS Next 系列之底部标签栏TabBar实现(三) 文章目录 系列文章目录前言一、实现原理二、…...
mac怎么录制屏幕?这2个方法你值得拥有
在数字化时代,屏幕录制已经成为一种常见且重要的工具,无论是教学演示、游戏直播还是会议记录,屏幕录制都发挥着不可或缺的作用。对于Mac用户而言,如何高效、便捷地进行屏幕录制,是一个值得探讨的话题,可是很…...
爱德华三坐标软件ACdmis.AC-dmis密码注册机
爱德华三坐标软件 AC-DMIS 是一款功能强大的三坐标测量软件,具有以下特点: • 支持多种测量模式:包括接触式测量、非接触式测量、复合式测量等,可以满足不同类型工件的测量需求。 • 高精度测量:采用先进的测量算法和…...
计算机网络 期末复习(谢希仁版本)第3章
对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。局域网的传输媒体,包括有线传输媒体和无线传输媒体两个大类,那么有线传输媒体有同轴电缆、双绞线和光纤;无线传输媒体有微波、红…...
代码随想录——数组
给定一个n个元素有序(升序)的整型数组nums和一个目标值target,写一个函数搜索nums中的target,如果目标值存在返回下标,否则返回-1. //这个题说实话从逻辑上来看实在是太简单了,但是为什么每一次我写起来都感…...
计算机网络7——网络安全4 防火墙和入侵检测
文章目录 一、系统安全:防火墙与入侵检测1、防火墙1)分组过滤路由器2)应用网关也称为代理服务器(proxy server), 二、一些未来的发展方向 一、系统安全:防火墙与入侵检测 恶意用户或软件通过网络对计算机系统的入侵或攻击已成为当今计算机安…...
html+CSS+js部分基础运用20
根据下方页面效果如图1所示,编写程序,代码放入图片下方表格内 图1.效果图 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta http-equiv"X-UA-Compatible" conte…...
ISO 19115-2:2019 附录C XML 模式实现
C.1 XML 模式 本文件中定义的 UML 模型的 XML 模式在 ISO/TS 19115-3 中定义的适当 XML 命名空间中提供。新增内容包括: 命名空间前缀模式文件名Metadata for ACquisition (mac)acquisitionInformationImagery.xsdMetadata for Resource Content (mrc)contentInfo…...
DevOps的原理及应用详解(一)
本系列文章简介: 在当今快速变化的商业环境中,企业对于软件交付的速度、质量和安全性要求日益提高。传统的软件开发和运维模式已经难以满足这些需求,因此,DevOps(Development和Operations的组合)应运而生&a…...
【冲刺秋招,许愿offer】第 三 天(水一天)
【冲刺秋招,许愿offer】第 二 天(水一天) 知识点牛客emo 知识点 今天端午,上午去摘杏下午理发,一天没咋看电脑。晚上刷刷LeetCode看看八股。 牛客 spring事务失效的情况 捕获到异常,自己手动处理 方法修…...
使用 C# 学习面向对象编程:第 6 部分
继承 亲爱的读者,继承意味着从源头继承一些东西。例如,儿子可以继承父亲的习惯。同样的概念也用于面向对象编程;它是 OOP 的第二大支柱。 继承允许创建一个新类,该新类继承另一个类或基类的属性,继承这些成员的类称为…...
分布式训练基础入门
1.单节点训练 单节点训练也会转换为等价的并行训练,如在GPU内同一wrap内的32个Thread执行同一指令,但处理不同的数据。 训练程序往往实现了一个多层神经网络的执行过程。该神经网络的执行由一个计算图(Computational Graph)表示。…...
AWS S3存储桶中如何下载文件
AWS S3存储桶中如何下载文件 1.单个下载 AWS S3 控制台提供了下载单个文件的功能,但是不支持直接在控制台中进行批量下载文件。您可以通过以下步骤在 AWS S3 控制台上下载单个文件: 1.1登录 AWS 管理控制台。 1.2转到 S3 服务页面。 1.3单击…...
公众号开发者权限/seo系统
linux shell java lib(linux shell脚本加载java环境变量)用shell来启动java应用程序,只要遍历lib目录#!/bin/shPROJECT_HOME/home/admin/projectMAINCLASScom._8qiu.app.MainClassCLASS_PATH${PROJECT_HOME}/classes:$(echo ${PROJECT_HOME}/lib/*.jar|sed s/ /:/g)…...
优秀的国外网站/西安抖音seo
需求:客户端界面需要一个软键盘进行操作 做了一个简易的例子进行展示。 html代码: <div id"container"> <div class"print-right"><div id"right-top" class"right-top"><div class&quo…...
撰写网站规划书/百度客户端电脑版下载
为了减少c文件的编译依赖,前置声明经常使用,特别是在头文件中,如果不是必要,对于class基本都使用前置声明,而不是直接#include。 今天遇到一个问题,需要在某类的头文件里面引用到另外一个“类”࿰…...
华为网站建设方案模板/宁德seo公司
将正则表达式直接写在mock里 Mock拦截Ajax的函数如下: Mock.mock(rurl, method, function) 已知 rurl 可以直接使用正则表达式,那么不妨碍直接把正则表达式写在 rurl 里,即如下: Mock.mock(/http:\/\/localhost:3000\/ywcklb\/g…...
恩施市住房和城乡建设局网站/seo工具软件
闭包的优点,延长或扩大了变量的使用范围,延长了变量的使用时间,2.避免了变量命名的冲突 缺点:如果乱用闭包,会造成空间的浪费 创建person新实列:1创建一个新对象 2.将构造函数的作用域赋给新对象࿰…...
10天搞定网站开发/html网页制作模板
大家好,我是陶然同学,软件工程大三即将实习。认识我的朋友们知道,我是科班出身,学的还行,但是对面试掌握不够,所以我将用这100多天更新Java面试题🙃🙃。 不敢苟同,相信大…...