首页
学习
活动
专区
圈层
工具
发布

【C 语言】字符串模型 ( 字符串翻转模型 | 抽象成业务函数 | 形参返回值 | 函数返回值 | 函数形参处理 | 形参指针判空 )

文章目录 一、字符串翻转模型 业务函数 二、完整代码示例 一、字符串翻转模型 业务函数 ---- 将上一篇博客 【C 语言】字符串模型 ( 字符串翻转模型 ) 的代码 , 主要业务逻辑 , 抽象成函数...; 字符串翻转模型 业务函数 要点 : 形参返回值 : 函数的返回值 , 一般使用 函数形参 间接赋值 进行返回 ; 下面的代码中 char *str 是返回值 ; int inverse(char *...str) 函数返回值 : 函数的返回值 , 反映的是函数的执行结果状态 , 返回 0 执行成功 , 返回 -1 执行失败 ; 函数形参处理 : 在 函数中 , 如果涉及到修改 形参 指针变量 , 一般不直接使用形参...: 函数的第一项任务就是 判定 形参指针是否合法 , 如果任何一个指针为空 , 直接返回 -1 ; // 判断传入的字符串指针是否为空 if(str_tmp == NULL) {...int inverse(char *str) { // 创建临时变量接收 函数形参 , 不要直接改变形参的函数指向 char *str_tmp = str; // 判断传入的字符串指针是否为空

1.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【C 语言】字符串模型 ( 两头堵模型 | 将 两头堵模型 抽象成业务模块函数 | 形参返回值 | 函数返回值 | 形参指针判空 | 形参返回值操作 )

    文章目录 一、将 两头堵模型 抽象成业务模块函数 二、完整代码示例 一、将 两头堵模型 抽象成业务模块函数 ---- 将 两头堵模型 抽象成业务模块函数 相关要点 : 形参返回值 : 函数的返回值 ,...一般使用 函数形参 间接赋值 进行返回 ; 下面的代码中 int *count 是返回值 ; int get_count(char *str_all, int *count) 函数返回值 : 函数的返回值...= 0; // 循环条件是 i 指针指向的 位置 为空 则继续循环 // 遇到第一个不为空的字符 , 便停止循环 // 停止循环时的 i 指向从左侧开始第一个不为空的字符...= count_tmp; return 0; } int main() { // 存在如下字符串, 求 前后不为空 的 子串长度 char *str = " sdfsdfsdabc4548411abc..."; // 要统计的结果 int count = 0; // 调用函数计算上述字符串 收尾不为空 的子串 int ret = get_count(str, &

    1K20

    前端问答:JavaScript 中的??和|| 有啥不同

    它的具体作用是检查左边的值(第一个计划),如果左边这个值是 “假”(也就是不靠谱、不能用的意思),它就会去看右边的值(第二个计划),并返回右边的值。...在 JavaScript 里,有一些特殊的值会被认为是“假”的,像这些: false(假) 0(零) ""(空字符串) null(表示空) undefined(未定义) NaN(非数字) 这些值都被认为是不能用的...JavaScript 中的"??"操作符:只关心空值,别搞混了! JavaScript 里的??(空值合并运算符)看起来和我们之前聊过的||有点像,但它其实更“挑剔”!...—— 只处理“真正”的空值 ?? 操作符的工作方式是:当左边的值是 null 或 undefined 时,才返回右边的备用值。像 0、false、"" 这些“假值”,在??..."Nullish":谁才是真的空? ||:它的逻辑是,遇到任何“假值”(falsy)就会返回备用值。

    1.1K00

    【C 语言】字符串模型 ( strstr-while 模型 | 抽象函数模型 | 业务子函数接口定义要点 | 形参指针间接赋值 | 返回值状态 | 形参指针处理 | 形参指针判空 | 形参返回值 )

    ; 要点 2 返回值状态 : 返回值主要是 反应函数执行状态 , 返回 0 代表函数执行成功 ; /* * 获取字符串中子串个数接口 * char *main_str : 大字符串 *...char *sub_str : 子字符串 * int *sub_count : 存放查找到的子字符串个数 * 返回值返回执行状态 , 成功返回 0 , 失败返回失败代码 */ int get_sub_count...; 形参指针判空 : 凡是传入的指针 , 一律判定指针是否合法 ; 形参返回值处理 : 返回值不要直接修改 , 先定义临时局部变量保存返回值 , 最后执行完毕 , 再将返回值 通过 间接赋值 赋值给 形参中的...返回值指针 指向的 内存地址 ; /* * 获取字符串中子串个数接口 * char *main_str : 大字符串 * char *sub_str : 子字符串 * int *sub_count...* char *main_str : 大字符串 * char *sub_str : 子字符串 * int *sub_count : 存放查找到的子字符串个数 * 返回值返回执行状态 , 成功返回

    3.5K10

    JavaScript字符串数组排序

    数字字符的ASCII值为48-57。每次比较两个字符串(如字符串j和字符串j+1)中的每一个字符。 情况如下: 1、j中为数字,j+1不为数字。...代码修正日志 2015-09-23 优化代码编写,修正类似“1717A”被错误排在“1717”之前的错误,增添若字符串为空,则将其排在最前面。...如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。...stringObject.charAt(index)方法可返回指定位置的字符。请注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串。...参考资料 JavaScript splice() 方法 JavaScript isNaN() 函数 JavaScript charAt() 方法 关于数组中字符串的排序有什么更好的解决办法么

    3.2K10

    javascript常用判断写法

    、为空或不是对象 、判断为空 、判断不为空  2.2:比较两个表单项的值是否相同 2.3:表单只能为数字和”_”, 2.4:表单项输入数值/长度限定 2.5:中文/英文/数字/邮件地址合法性判断 2.6...检查一段字符串是否全由数字组成        —————————————        Javascript”><!...邮箱格式验证     —————————————       //函数名:chkemail      //功能介绍:检查是否为Email Address      //参数说明:要检查的字符串     ...数字格式验证     —————————————       //函数名:fucCheckNUM      //功能介绍:检查是否为数字      //参数说明:要检查的数字      //返回值:1为是数字...电话号码格式验证     —————————————       //函数名:fucCheckTEL      //功能介绍:检查是否为电话号码      //参数说明:要检查的字符串      //返回值

    1.7K40

    TypeError: Cannot read property ‘length‘ of undefined :读取未定义变量长度的完美解决方法

    引言 在JavaScript开发中,TypeError 是一种非常常见的错误,特别是在处理对象或数组时。当我们试图访问一个未定义或空值的变量属性时,就会引发这个错误。...2.3 函数返回值为 undefined 有时候,我们可能从一个函数中获取到 undefined,而不是我们期望的数组或字符串,这同样会导致这个错误: function getArray() {...3.2 使用条件(短路)运算符 你可以使用条件运算符来检查变量是否为 undefined 或 null,并提供一个默认值: let arr; console.log((arr || []).length...3.3 函数返回值校验 在使用函数返回值之前,先进行校验,确保返回的不是 undefined 或 null: function getArray() { return undefined; }...通过对变量进行适当的检查和初始化,以及使用条件运算符来防止空值,我们可以有效避免和解决这个错误。希望通过本文的讲解,大家可以更好地理解和处理这一错误,从而提升代码的健壮性和稳定性。 5.

    6.4K10

    了解 JavaScript 新特性:Optional Chaining

    Optional Chaining 是 JavaScript 的一个新特性,它允许我们在尝试访问对象的属性之前检查对象是否存在。...JavaScript 中的长属性访问链很容易出错,因为它们中的任何一个都可能评估为null或undefined(也称为“空”值)。...如果name是一个空字符串,我们仍将获得正确的0长度。这是因为空字符串是虚值:它在if子句中的行为类似false。Optinal Chaining 操作符可修复这类常见的错误。...它要么返回括号中的参数所引用的值,或者如果没有可以获取值的对象,则返回undefined。...如果一个值保证不为空,则不建议使用?.访问它的属性。在上面的示例中,db被视为始终已定义,但是db.users和db.users [42]可能未定义。

    97230

    TypeScript系列:第五篇 - 断言&守卫(as、satisfies、is、as const)

    它在运行时检查 value 是否为数值,并返回一个布尔值。...表达式 说明 let s1 = 'JavaScript' 类型推断为基本类型 string const s2 = 'JavaScript' 类型推断为值类型:字符串 “JavaScript” let s3...= 'JavaScript' as const 类型推断为值类型:字符串 “JavaScript” 【等同于上述 s2】 ⚠️ as const 断言只能用于字面量,不能用于变量!...非空断言 对于那些可能为空的变量(即可能等于undefined或null),TypeScript 提供了非空断言,保证这些变量不会为空,写法是在变量名后面加上感叹号!。 x!....toFixed() // x不为空 总结 类型断言 是一种编译时的机制,它不会在运行时检查类型,而是告诉编译器按照指定的类型处理变量。

    50100

    JavaScript基本数据类型

    JavaScript基本数据类型 JavaScript 的数据类型分为两种: 简单的值(原始值):包含字符串、数字和布尔值,此外,还有两个特殊值——null(空值)和 undefined(为定义)。...数据类型 说明 null 空值,表示非对象 undefined 未定义的值,表示未赋值的初始化值 number 数字,数学运算的值 string 字符串,表示信息流 boolean 布尔值,逻辑运算的值... 类型只有一个值,即 null,它表示空值,定义一个空对象指针。...设置变量的初始化值为 null,可以定义一个备用的空对象,即特殊的对象值,或称为非对象。例如,如果检测一个对象为空的,则可以对其进行初始化。...实际上JavaScript对象的所有属性都是字符串,不过属性对应的值可以是任意数据类型。 如果访问一个不存在的属性会返回什么呢?

    39320

    4个优雅的 ES2020 运算符使用技巧

    但是,当对象具有可选属性或某些配置对象具有某些值的动态映射时,可能会遇到类似情况,需要检查很多边界条件。 这时候,如果我们使用可选链接运算符,一切就变得更加轻松了。...它为我们检查嵌套属性,而不必显式搜索梯形图。我们所要做的就是使用“?” 要检查空值的属性之后的运算符。我们可以随意在表达式中多次使用该运算符,并且如果未定义任何项,它将尽早返回。...= expr2 逻辑空值运算符仅在空值( null 或者 undefined)时才将值分配给expr1,表达方式: x ??= y 可能看起来等效于: x = x ?? y; 但事实并非如此!...空的合并运算符(??)从左到右操作,如果x不为空,则短路。因此,如果x不为 null 或者 undefined,则永远不会对表达式y进行求值。因此,如果y是一个函数,它将根本不会被调用。...Falsy值与null有所不同,因为falsy值可以是任何一种值:undefined,null,空字符串(双引号""、单引号’’、反引号``),NaN,0。

    1.6K30

    javaScript的七种数据类型大全

    由于instanceof检查整个原型链,因此同一个实例对象,可能会对多个构造函数都返回true。 ? 上面代码中,d同时是Date和Object的实例,因此对这两个构造函数都返回true。...1.3数据的全局方法: parseInt():将字符串转为整数,如果参数不是字符串会先转成字符串再转为整数,parseInt方法还可以接受第二个参数(2到 36之间),表示被解析的值的进制,返回该值对应的十进制数...parseFloat():将一个字符串转为浮点数。 isNaN():判断一个值是否为NaN isFinite():返回一个布尔值,表示某个值是否为正常的数值。...null表示空值,即该处的值现在为空。调用函数时,某个参数未设置任何值,这时就可以传入null,表示该参数为空。...例如:当值为空串时显示空,不为空串时再判断类型,取对象中的属性。 ? 上面的代码中,函数add接收一个参数x,如果x是'',那么!

    3.2K40

    【JS】1847- JavaScript 中几个优雅的运算符使用技巧

    但是,当对象具有可选属性或某些配置对象具有某些值的动态映射时,可能会遇到类似情况,需要检查很多边界条件。 这时候,如果我们使用可选链接运算符,一切就变得更加轻松了。...它为我们检查嵌套属性,而不必显式搜索梯形图。我们所要做的就是使用 “?” 要检查空值的属性之后的运算符。我们可以随意在表达式中多次使用该运算符,并且如果未定义任何项,它将尽早返回。...= expr2 逻辑空值运算符仅在 nullish 值(null 或者 undefined)时才将值分配给 expr1,表达方式: x ??= y 可能看起来等效于: x = x ??...空的合并运算符(??)从左到右操作,如果 x 不为 nullish 值则中表达式不执行。因此,如果 x 不为null 或者 undefined,则永远不会对表达式y进行求值。...Falsy 值(虚值)与 null 有所不同,因为 falsy 值(虚值)可以是任何一种值:undefined,null,空字符串 (双引号 ""、单引号’’、反引号 ``),NaN,0。

    77521

    JavaScript笔记(三)

    两个数字相加,返回数字相加的和;两个字符串相加,变量会连接成一个字符串;如果数字与字符串相加,返回字符串。...该循环会在检查条件是否为真之前执行一次代码块,然后如果条件为真的话,就会重复这个循环。...表示一个空对象引用 undefined typeof undefined 返回 undefined 是一个没有设置值的变量 类型转换 在 JavaScript 中有 6 种不同的数据类型: string..."true" String(new Date()) // 返回此刻的日期时间 将字符串转换为数字 全局方法 Number() 可以将字符串、布尔值、日期转换为数字 Number("3.14")...|其他的字符串会转换为 NaN (不是个数字) Number(d = new Date()) //返回此刻的时间戳 原始值 转换为数字 转换为字符串 转换为布尔值 false 0 “false” false

    1.3K20

    if else 太多?看我用 Java 8 轻松干掉!

    = null){ ... } } } } 要逐个判空再取最后的不为空的值,这样写,如果 if 多了就极不优雅,于是,我利用了 Java 8 的 Optional.map 方法干掉了层层...最近又来了个奇怪的需求,大概的逻辑是这样的,有一个参数,如果该值为空,就依次取几个备用参数的值,如果几个备用的参数都为空,最后取默认值。...如:取 info 的值,如果 info 为空,就依次取 info1, info2, info3, info4 的值,如果都为空,就取系统默认值。...感觉就是和上次的场景完全相反,上次是依次判断不为空取最后的值,这个是取第一个不为空的值。...我们逐行展开分析下: 依次用每个参数构建一个List 移除所有为空的参数 找出第一个不为空的参数 利用 Java 8 新增的 removeIf 方法巧妙的干掉了 if/else,并且可以使用 Lambda

    1.4K41
    领券