首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

程序员C语言快速上手——基础篇(四)

基础语法 简单数组 声明数组 初始化数组 下标访问 计算数组长度 数组使用小结 字符字符串 char 字符 宽字符 字符串 (String) 字符串普通数组的区别 小拓展: 字符串的常用函数 字符串长度...比较字符串内容 字符串的复制 字符串拼接 基础语法 简单数组 把具有相同类型的若干个数据按一定顺序组织起来,这些同类数据元素的集合就称为数组。...注意,C语言中的数组与其他编程语言的数组或列表有相似性,本质上又有不同。...实际上,C语言的char就是一个整数,它的范围是0~127 1 char s = 'a'; 2 char s1 = 97; 3 4 // 可以看到,s和s1打印结果完全相同 5...1 array size is 13 2 string size is 12 可见str数组共用13个元素,只有12个有效字符,最后一个为\0结束符 比较字符串内容 当我们要判断两个字符串是否相同

73050

CoreJava第三章要点速记

如果要在所有平台上得到相同结果,要使用StrictMath类。...3.6.2 拼接 String 可以使用+拼接字符串。当一个字符串字符串拼接时,后者将被转换成字符串。...如果复制一个字符串变量,原始字符串复制的字符串可以共享相同字符串,而不必担心字符串被莫名其妙修改的问题。   Java设计者认为共享带来的高效远远胜于提取、拼接字符串带来的低效。...注意:   一定不要使用 == 检查两个字符串是否相等!这只能判断两个字符串是否放在同一内存位置上。虽然放在同一位置上的字符串必然相等,但是完全有可能将内容相同的多个字符串拷贝防止在不同的位置上!...注意:   C++不同,Java没有重载运算符的功能。虽然Java设计者为String重载了 + 运算符,没有重载其他运算符,也不支持程序员重载运算符。

1.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

五个刁钻的String面试问题及解答

字符串不属于8中基本数据类型,字符串对象属于引用数据类型,在上面把“abc”同时赋值给了st1和st2两个字符串对象,指向的都是同一个地址,所以第一个打印语句中的==比较输出结果是 true 然后我们看第二个打印语句中的...当且仅当该参数不为null,并且是与此对象表示相同字符序列的 String 对象时,结果才为 true。 注意这个相同字符序列,在后面介绍的比较两个数组,列表,字典是否相等,都是这个逻辑去写代码实现。...由于st1和st2的值都是“abc”,两者指向同一个对象,当前字符序列相同,所以第二行打印结果也为true。 下面我们来画一个内存图来表示上面的代码,看起来更加有说服力。 ?...第二个对象在堆内存为啥是一个拷贝的副本呢,这个就需要在JDK API 1.6找到String(String original)这个构造方法的注释:初始化一个新创建的 String 对象,使其表示一个参数相同的字符序列...把String对象(0x0022)赋值给st3 所以,st3和st2进行==判断结果是不相等,因为两个对象内存地址不同

35320

剑指Offer题解 - Day63

字符串的排列 力扣题目链接[1] 输入一个字符串打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组,里面不能有重复元素。...(N - 1) * ... * 1 种不同的方式。...res = []; // 初始化结果数组 let c = s.split(''); // 对字符串进行分割 const dfs = (x) => { // 递归字符串...直到固定的位置是字符串分割数组的最后一项时,意味着再也无需交换元素,此时的数组就是已经执行过交换操作并且不重复的,将该数组拼接字符串并放入结果数组中。这也就是递归的终止条件。...最终返回结果数组即可。 总结 本题考查字符串的搜索回溯。难度系数为困难。核心逻辑在于从头开始固定元素,并依次将后续元素之交换,达到排列的目的。然后递归处理后续元素进行固定和交换。

13720

5道String面试题,能全答对的人不到10%!(附答案)

字符串不属于8中基本数据类型,字符串对象属于引用数据类型,在上面把“abc”同时赋值给了st1和st2两个字符串对象,指向的都是同一个地址,所以第一个打印语句中的==比较输出结果是 true 然后我们看第二个打印语句中的...当且仅当该参数不为null,并且是与此对象表示相同字符序列的String 对象时,结果才为 true。”...由于st1和st2的值都是“abc”,两者指向同一个对象,当前字符序列相同,所以第二行打印结果也为true。下面我们来画一个内存图来表示上面的代码,看起来更加有说服力。...第二个对象在堆内存为啥是一个拷贝的副本呢,这个就需要在JDK API 1.6找到String(String original)这个构造方法的注释:初始化一个新创建的 String 对象,使其表示一个参数相同的字符序列...5)把String对象(0x0022)赋值给st3 所以,st3和st2进行==判断结果是不相等,因为两个对象内存地址不同

34320

5 个刁钻的 String 面试题!

字符串不属于8中基本数据类型,字符串对象属于引用数据类型,在上面把“abc”同时赋值给了st1和st2两个字符串对象,指向的都是同一个地址,所以第一个打印语句中的==比较输出结果是 true 然后我们看第二个打印语句中的...当且仅当该参数不为null,并且是与此对象表示相同字符序列的String 对象时,结果才为 true。”...由于st1和st2的值都是“abc”,两者指向同一个对象,当前字符序列相同,所以第二行打印结果也为true。 下面我们来画一个内存图来表示上面的代码,看起来更加有说服力。 ?...第二个对象在堆内存为啥是一个拷贝的副本呢,这个就需要在JDK API 1.6找到String(String original)这个构造方法的注释:初始化一个新创建的 String 对象,使其表示一个参数相同的字符序列...5)把String对象(0x0022)赋值给st3 所以,st3和st2进行==判断结果是不相等,因为两个对象内存地址不同

1.3K10

SQL学习之计算字段的用法解析

(1)、我们需要一个字段同时显示公司名和公司地址,这两个信息存储在不同表的列中。...(2)、省份、城市、邮政编码存储在不同的列中(大多数情况下是这样),邮件标签打印程序需要把它们作为一个有恰当顺序、格式的字段打印出来。...而不是检索出来,再到客户端进行初始化。 这时,计算字段就可以派上用场了,计算字段并不实际存在数据表中,计算字段是运行在SELECT语句内创建的。...字段:字段基本上列的疑似相同,经常互换使用,不过数据库列一般称为列,而术语字段通常计算字段一起使用。 这里需要注意:只有数据库的知道SELECT语句中哪些列是实际的表列,那些列是计算字段。...ok,完成需求 注意:不同的DBMS(数据库管理系统)使用字符串拼接的操作符不同,Acesss和SQL Server使用的是'+',DB2、Oracle、PostgreSQL、SQLite和Open Office

1.1K50

面试: String 五连杀 !你还满血吗 ?

字符串不属于8中基本数据类型,字符串对象属于引用数据类型,在上面把“abc”同时赋值给了st1和st2两个字符串对象,指向的都是同一个地址,所以第一个打印语句中的==比较输出结果是 true 然后我们看第二个打印语句中的...当且仅当该参数不为null,并且是与此对象表示相同字符序列的String 对象时,结果才为 true。”...由于st1和st2的值都是“abc”,两者指向同一个对象,当前字符序列相同,所以第二行打印结果也为true。 下面我们来画一个内存图来表示上面的代码,看起来更加有说服力。...第二个对象在堆内存为啥是一个拷贝的副本呢,这个就需要在JDK API 1.6找到String(String original)这个构造方法的注释:初始化一个新创建的 String 对象,使其表示一个参数相同的字符序列...5)把String对象(0x0022)赋值给st3 所以,st3和st2进行==判断结果是不相等,因为两个对象内存地址不同

17610

Linux Shell基础篇二 - 变量

环境变量按照其作用范围不同大致可以分为系统级环境变量和用户级环境变量。.../bin/bash#child.shecho "child.sh中输出var_global变量:${var_global}" 然而直接在交互式Shell环境中打印${var_global}是得不到结果的..., 格式为: “1” “2” … “n” 使用循环打印所有输入参数可以看出区别 演示: 直接输出所有输入参数, 循环方式输出所有输入参数(使用双引号包含 * @ ),创建test.sh: 1234567891011121314151617181920212223242526272829303132...字符串中不能出现空格,否则空格后边的字符串会作为其他变量或者命令解析。...:的意义在于,如果不加:默认空字符串也表示str有设定值,而加上:则表示如果str设定了值,值为空字符串,依然当作str没有设定值处理。

2.7K40

《Go语言入门经典》7~9章读书笔记

在main函数中,使用简短变量赋值声明并初始化了变量m,给数据字段指定的值为相应的数据类型。 使用点表示法访问数据字段并将其打印到控制台。 7.2 创建结构体 声明结构体后,就可通过多种方式创建它。...a := b 赋值后,ab相同,但它是b的副本,而不是指向b的引用。修改b不会影响a,反之亦然。 要修改原始结构体实例包含的值,必须使用指针。...` 9.3 拼接字符串拼接(合并)字符串,可将运算符+用于字符串变量。还可使用复合赋值运算符+=来拼接字符串。...9.3.1 使用缓冲区拼接字符串 对于简单而少量的拼接,使用运算符+和+=的效果虽然很好,但随着拼接操作次数的增加,这种做法的效率并不高。...如果需要在循环中拼接字符串,则使用空的字节缓冲区来拼接的效率更高。

43320

第十五天 常用API-object&string&stringbuilder&stringbuffer【悟空教程】

第2章 StringBuilder类 2.1 StringBuilder概述 我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。...登录案例共分三步: 启动项目,初始化用户数据 用户输入账号密码 比对账号密码(账号密码必须相同) 注册登录步骤类似: 启动项目,初始化用户数据 用户输入要注册的账号密码 比对账号密码(有相同的账号不可以...打印结果,并说明为什么是这个结果? 调用s1的equals()方法和s2比较是否相等?打印结果,并说明为什么是这个结果? 说明上述两个结果为什么不同?...打印结果,并说明为什么是这个结果? 如果不区分大小写的判断,需要怎样判断?...5.1.11 练习字符串方法:完成1.3.3中最后的习题 5.2 代码题: 5.2.1 输入数组,最大的第一个元素交换,最小的最后一个元素交换,输出数组。

39310

07-08 创建计算字段使用函数处理数据第7章 创建计算字段第8章 使用函数处理数据

需要显示公司名,同时还需要显示公司的地址,这两个信息存储在不同的表列中。 城市、州和邮政编码存储在不同的列中,邮件标签打印程序需要把它们作为一个有恰当格式的字段检索出来。...列数据是大小写混合的,报表程序需要把所有数据按大写表示出来。 物品订单表存储物品的价格和数量,不存储每个物品的总价格。打印发票,需要物品的总价格。 需要根据表数据进行诸如总数、平均数的计算。...字段(field) 基本上列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常计算字段一起使用。...从客户端(如应用程序)来看,计算字段的数据与其他列的数据的返回方式相同。 提示:客户端服务器的格式 在 SQL 语句内可完成的许多转换和格式化工作都可以直接在客户端应用程序内完成。...从输出看到,结果与以前的相同,但现在列名为 vend_title,任何客户端应用都可以按名称引用这个列,就像它是一个实际的表列一样。 在很多 DBMS 中,AS 关键字是可选的,不过最好使用它。

3.7K20

Java Object类 和 String类 常见问答 6k字+总结

简单的说:就是 Java 中有好多现成的类库,其中封装了许多函数,只提供函数名和参数,隐藏了函数的具体实现,这些可见的部分作为外界联系的桥梁,也就是我们所称的 API ,不过由于Java是开源的,所以这些隐藏的实现我们也是可以看到的...hashCode() 方法不是一个 100% 可靠的方法,个别情况下,不同的对象生成的 hashcode 也可能会相同。...如果大量内容都是用 equals() 去比对,效率显然是比较低的,所以每次比对之前都去使用 hashCode() 去对比,如果返回的 hashCode 不同,代表两个对象肯定不相同,就可以直接返回结果了...), hashcode 不相同的情况。...结果应是一个简明易于读懂的信息表达式。因此建议所有子类都重写此方法。 2.6 字符串使用 += 赋值后,原始的String对象中的内容会改变吗?

37120

【愚公系列】2021年12月 Java教学课程 26-常用API方法详解

通过构造方法创建 ​ 通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然内容相同,但是地址值不同 直接赋值方式创建 ​ 以“”方式给出的字符串,只要字符序列相同(顺序和大小写...案例需求 : ​ 定义一个方法,把 int 数组中的数据按照指定的格式拼接成一个字符串返回,调用该方法, ​ 并在控制台输出结果。...例如,数组为int[] arr = {1,2,3}; ,执行方法后的输出结果为:[1, 2, 3] 实现步骤 : 定义一个 int 类型的数组,用静态初始化完成数组元素的初始化 定义一个方法,用于把 int.../* 思路: 1:定义一个 int 类型的数组,用静态初始化完成数组元素的初始化 2:定义一个方法,用于把 int 数组中的数据按照指定格式拼接成一个字符串返回。...//定义一个 int 类型的数组,用静态初始化完成数组元素的初始化 int[] arr = {1, 2, 3}; //调用方法,用一个变量接收结果 String

54020

一起学JAVA API Object String StringBufferStringBuilder

但是有时候也存在不同对象哈希码值相同的特殊情况,我们称之为”哈希碰撞”现象 equals() 本方法用于指示其他某个对象是否当前对象”相等” 3.3 练习: Object类练习 创建包: cn.tedu.api...方式二: String str = “abc”; 如果是第一次使用字符串,java会在字符串堆中常量池创建一个对象。 再次使用相同的内容时,会直接访问堆中常量池中存在的对象。...,地址值不同 System.out.println(s2 == s22);//true,都在堆中常量池,并且指向同一个,所以地址值相同 System.out.println...String[],所以需要使用Arrays.toString()打印 //以指定字符作为分割符,分割当前的字符串 //我们只是直接打印了split()的结果,没有使用变量保存...//4.打印拼接的效果 //System.out.println(sb); System.out.println(sb2); //5.3打印拼接总共消耗的时间

20310

面试常备,字符串三剑客 String、StringBuffer、StringBuilder

另外,我们还需要了解一个特性,当将一个字符串一个非字符串的值进行拼接时,后者被自动转换成字符串(「任何一个 Java 对象都可以转换成字符串」)。...例如: int a = 12; System.out.println("a = " + a); 结合上面这两特性,我们来看个小问题,「空串和 null 拼接结果是啥」?...str1 和 str2 是两个不同的对象,地址不同,因此 == 比较的结果也就为 false。 ?...因此 s3 和 s4 引用的是同一个字符串,也就是说它们的地址相同,所以 str3 == str4 的结果是 true。 ? ?...初始化操作 StringBuilder 和 StringBuffer 这两个类的 API 是相同的,这里就以 StringBuilder 为例演示其初始化操作。

31110

C语言之字符、整数、数组、字符串笔记

[0], arr[1], arr[2]); //打印结果:arr[0]: 0, arr[1]: 0, arr[2]: 0 //再初始化数组里面的元素 arr[0] =...printf("cc2: %s \n", cc2); //打印结果:cc2: b \0的作用测试 //字符数组的部分初始化, 设置了字符数组的元素个数,然后部分元素初始化,其他元素为默认值...^_^"; //strcat(s1, s2); //这种写法运行时会挂,因为s1字符串变量装不了来自s2来的全部数据 //正确拼接方式,先计算源字符串还可以拼接字符的长度 size_t...:catLen: 7 strncat(s1, s2, catLen); printf("拼接后新字符串src: %s \n", s1); //打印日志:拼接后新字符串src: hiHello...: s3Len: 9, s3: very good //4、strcmp、strncmp 字符串比较 //取出字符逐个比较,发现不相同则不往下比较,==0表示相同

2.7K42
领券