C语言中自己写几个简单的库函数

       在C语言的学习中我们总会遇到一些看似看简单的问题,比如求字符串的长度,判断一个字符串中是否包含一个给定的子字符串,又或者怎么将一个字符串逆序输出,甚至是部分逆序输出,这些问题看似都挺简单,因为我们早已经习惯了使用库函数,求一个字符串的长度,用strlen()函数,不需要敲几个代码就可以得到结果,当然这也没什么问题,毕竟库函数设计出来就是给人用的,不过有时候你若闲没什么事情做得话,不妨去看看库函数,它们是如何定义的,它们又是如何使用的,库函数中的代码都是经过了验证,并且是通过一种很简便的代码形式给出来的,因此这样的代码值得我们多去看一看!当然如果你能在没事的时候自己想着去实现以下一些库函数,对于你而言还是很有用的,毕竟我们可以模仿一下大师是如何写代码的。

       下面是两个小例子:(要求不能使用库函数),既然给出了要求不能使用库函数,最简单的方法就是自己实现一个库函数,这也是所有人都会想到的一个方法。

       首先这是一道关于查找子字符串的例子,原题是在屏幕上输入内容,如果输入的一行中包含有一个给定的子字符串的话,就将这一行内容在输出一遍,否则就不输出。(不能使用库函数strstr())

以下是我测试用的代码:


  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 C 语言没有提供用于大小转换的库函数。但是你可以使用以下函数来达到转换大小的目的: - `toupper(int c)`: 将小字母转换为大字母。如果传入的字符 `c` 不是小字母,则直接返回。 - `tolower(int c)`: 将大字母转换为小字母。如果传入的字符 `c` 不是大字母,则直接返回。 这两个函数均定义在头文件 `ctype.h` 。使用这些函数的方法是:将要转换的字符作为参数传入函数,函数将返回转换后的字符。 例如: ``` #include <ctype.h> int main(void) { char c = 'a'; printf("%c\n", toupper(c)); // 输出 A c = 'A'; printf("%c\n", tolower(c)); // 输出 a return 0; } ``` 注意:这些函数只能用于单个字符的大小转换,如果要转换字符串的所有字符,则需要自己循环来实现。 ### 回答2: 在C语言,有以下几个常用的关于大小转换的库函数: 1. tolower():是一个用于将大字母转换为小字母的函数。它接受一个字符作为参数,并返回转换后的字符。例如,tolower('A')的返回值是'a'。 2. toupper():是一个用于将小字母转换为大字母的函数。它接受一个字符作为参数,并返回转换后的字符。例如,toupper('a')的返回值是'A'。 这两个函数都属于ctype.h头文件的函数,用于对字符进行大小转换操作。需要注意的是,这两个函数只对字母字符有效,对于非字母字符不做任何转换。 另外还有一种方法是使用ASCII码进行大小转换: 3. 当字符为大字母时,可通过加上32来得到对应的小字母的ASCII码。例如,'A' + 32得到的ASCII码对应的字符是'a'。 4. 当字符为小字母时,可通过减去32来得到对应的大字母的ASCII码。例如,'a' - 32得到的ASCII码对应的字符是'A'。 通过上述的两种方法,可以实现字符的大小转换。 ### 回答3: 在C语言,有几个常用的库函数用于大小转换: 1. toupper() 函数:这个函数将小字母转换为大字母。它的原型为 `int toupper(int c)`,其 c 是一个整数,表示待转换的字符的ASCII码值。如果该字符是小字母,则返回对应的大字母的ASCII码值,否则返回原字符。 例如:`char c = 'a'; c = toupper(c);`,c 的值将变为 'A'。 2. tolower() 函数:这个函数将大字母转换为小字母。它的原型为 `int tolower(int c)`,其 c 是一个整数,表示待转换的字符的ASCII码值。如果该字符是大字母,则返回对应的小字母的ASCII码值,否则返回原字符。 例如:`char c = 'A'; c = tolower(c);`,c 的值将变为 'a'。 这两个函数来自于 `<ctype.h>` 头文件,并且对于 ASCII 字符集,它们只能正确处理英文字符。对于其他字符集或 Unicode 字符,需要使用其它方法进行大小转换。 另外还有一些库函数,如 strupr() 和 strlwr(),用于字符串的大小转换。但是这些函数在标准的 C 库并不包含,它们是一些特定平台或编译器提供的扩展函数,不具有通用性。 总之,在C语言,对于单个字符的大小转换,使用 toupper() 和 tolower() 函数是最常见和通用的方式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值