前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >tolower、toupper、count_if函数总结说明

tolower、toupper、count_if函数总结说明

作者头像
海盗船长
发布2023-10-11 09:32:30
2680
发布2023-10-11 09:32:30
举报
文章被收录于专栏:基础知识文章

tolower

描述

C 库函数 int tolower(int c) 把给定的字母转换为小写字母。

声明

下面是 tolower() 函数的声明。

代码语言:javascript
复制
int tolower(int c);

参数

c – 这是要被转换为小写的字母。

返回值

如果 c 有相对应的小写字母,则该函数返回 c 的小写字母,否则 c 保持不变。返回值是一个可被隐式转换为 char 类型的 int 值。 以下是一个例子,演示如何使用 tolower 函数将字符串中的字母全部转换为小写形式:

用例

代码语言:javascript
复制
#include <iostream>
#include <cctype>
#include <string>

int main() {
    std::string str = "Hello, World!";
    for (char& c : str) {
        c = std::tolower(c);
    }
    std::cout << str << std::endl;
    return 0;
}

在上面的示例中,我们使用 std::tolower 函数循环遍历字符串中的每个字符,并将其转换为小写形式。最终,输出结果将是

代码语言:javascript
复制
 "hello, world!"

std::tolower 函数需要包含 头文件,并且它的参数和返回值都是 int 类型,但是可以安全地转换为 char 类型。这是因为函数的参数可以是任何 unsigned char 的值或者 EOF,而返回值则是 unsigned char 或者 EOF 的小写表示。

toupper

描述

C 库函数 int toupper(int c) 把小写字母转换为大写字母。

声明

下面是 toupper() 函数的声明。

代码语言:javascript
复制
int toupper(int c);

参数

c – 这是要被转换为大写的字母。

返回值

如果 c 有相对应的大写字母,则该函数返回 c 的大写字母,否则 c 保持不变。返回值是一个可被隐式转换为 char 类型的 int 值。

用例

代码语言:javascript
复制
#include <iostream>
#include <cctype>
#include <string>

int main() {
    std::string str = "Hello, World!";
    for (char& c : str) {
        c = std::toupper(c);
    }
    std::cout << str << std::endl;
    return 0;
}

在上面的示例中,我们使用 std::toupper 函数循环遍历字符串中的每个字符,并将其转换为大写形式。最终,输出结果将是

代码语言:javascript
复制
"HELLO, WORLD!"

需要注意的是,std::toupper 函数需要包含 头文件,并且它的参数和返回值都是 int 类型,但是可以安全地转换为 char 类型。函数的参数可以是任何 unsigned char 的值或者 EOF,而返回值则是 unsigned char 或者 EOF 的大写表示。

std::count_if

std::count_if 是 C++ 标准库中的一个算法函数,用于统计满足特定条件的元素个数。它接受一个范围(例如容器)和一个判断条件的函数对象(或函数指针),并返回满足条件的元素个数。

函数:

代码语言:javascript
复制
template <class InputIterator, class UnaryPredicate>
  typename iterator_traits<InputIterator>::difference_type
    count_if (InputIterator first, InputIterator last, UnaryPredicate pred);
  • 返回满足条件范围内的元素个数
  • 返回pred为true的范围内[first,last]的元素个数。

参数:

  • first,last: 在元素序列的初始和最终位置输入迭代器。使用的范围是[first,last],它包含first和last之间的所有元素,包括first指向的元素,但不包括last指向的元素。
  • pred: 一元函数,接受范围内的元素作为参数,并返回一个可转换为 bool 的值。返回的值指示此函数是否对元素进行计数。

函数不应修改其参数。

这既可以是函数指针对象,也可以是函数对象。

返回值:

[first,last]应用于pred中不返回false的元素数。

返回类型(iterator_traits::difference_type)是有符号整数类型。

用例

代码语言:javascript
复制
#include <iostream>
#include <vector>
#include <algorithm>

bool isOdd(int num) {
    return num % 2 != 0;
}

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

    int count = std::count_if(numbers.begin(), numbers.end(), isOdd);

    std::cout << "Odd numbers count: " << count << std::endl;

    return 0;
}

在上面的示例中,我们定义了一个判断函数 isOdd,它返回一个布尔值,用于判断一个整数是否是奇数。然后,我们创建一个整数向量 numbers,其中包含了一些数字。接下来,我们使用 std::count_if 函数来统计 numbers 中满足 isOdd 条件的元素个数。最后,我们输出结果,得到奇数的个数为 5

需要注意的是,std::count_if 函数需要包含 <algorithm> 头文件,并且它接受一个迭代器范围作为第一个参数,表示要统计的元素范围。第二个参数是一个可调用对象(函数对象或函数指针),用于判断元素是否满足条件。在示例中,我们使用了自定义的 isOdd 函数作为判断条件,但也可以使用 lambda 表达式或其他可调用对象来进行条件判断。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • tolower
    • 描述
      • 声明
        • 参数
          • 返回值
            • 用例
            • toupper
              • 描述
                • 声明
                  • 参数
                    • 返回值
                      • 用例
                      • std::count_if
                        • 函数:
                          • 参数:
                            • 返回值:
                              • 用例
                              相关产品与服务
                              容器服务
                              腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                              领券
                              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档