当前位置: 首页 > news >正文

B2109 统计数字字符个数

B2109 统计数字字符个数

#include <iostream>

using namespace std;

# include <string.h>

#include <ctype.h>

#include <algorithm>

int main(){

  char str[256];

  cin.getline(str,256);

  //fgets(str,256,stdin);

  int cnt = 0;

  //for(size_t i = 0;i< sizeof(str);i++){

  for(size_t i = 0;i< strlen(str);i++){

    cnt +=isdigit(str[i]);

  }

  cout<<cnt;

}/*`sizeof` 和 `strlen` 在 C++ 中的确存在显著的区别。虽然 `sizeof` 的结果看似有时是个数,但它实际返回的是“字节长度”,而不是元素的数量,尤其在数组和字符串的场景中。以下是详细的解释:

### 1. **`sizeof` 的作用**

- **返回值**:`sizeof` 返回的是变量或类型在内存中占用的字节数。

- **作用对象**:可以用于任意数据类型(如基本数据类型、数组、结构体、类等)。

- **适用范围**:`sizeof` 是在编译时计算的,所以它的结果在编译期已知。

#### 示例

```cpp

int arr[10];

std::cout << sizeof(arr); // 输出 40(假设 int 是 4 字节)

```

这里 `sizeof(arr)` 的结果是 `40` 字节,因为数组 `arr` 包含 10 个 `int` 元素,而每个 `int` 占用 4 字节。因此 `sizeof(arr)` 返回 `10 * 4 = 40` 字节。

> 注意:对于数组,`sizeof` 返回的是数组的总字节数,并不是元素的个数(除非手动除以单个元素的大小)。在字符串场景中,`sizeof` 会包括字符串末尾的 `\0`。

#### 对字符串的影响

```cpp

char str[256];

std::cout << sizeof(str); // 输出 256

```

对于 `char str[256]`,`sizeof(str)` 返回的是整个字符数组的字节长度 `256`,而不是字符串的实际长度。这意味着即使字符串的内容长度是 10,`sizeof(str)` 依然返回 256,因为 `str` 的总空间大小是 256 字节。

### 2. **`strlen` 的作用**

- **返回值**:`strlen` 返回的是字符串的实际字符数(不包括末尾的 `\0`)。

- **作用对象**:仅用于 `char` 类型的字符串(C 风格字符串),且必须是以 `\0` 结尾。

- **适用范围**:`strlen` 是一个函数,它通过遍历字符串来确定字符个数,因此它的计算是在运行时进行的。

#### 示例

```cpp

char str[] = "Hello";

std::cout << strlen(str); // 输出 5

```

在这个例子中,`str` 实际包含的字符是 `H`, `e`, `l`, `l`, `o`,共 5 个字符,所以 `strlen(str)` 返回 `5`。这里不包括字符串末尾自动添加的 `\0`。

### 总结

- **`sizeof`**:返回的是变量或类型的总字节数,在数组中返回的是数组的全部内存大小(包括未使用的部分)。

- **`strlen`**:仅适用于 C 风格字符串,返回实际字符串内容的字符数,不包括终止符 `\0`。

所以,`sizeof` 返回的不是元素个数,而是总字节长度,而 `strlen` 返回的是字符串中实际字符的个数。*/

http://www.lryc.cn/news/476710.html

相关文章:

  • springboot Lark扫码登录
  • 中专女生数赛疑云:阿里蒙冤,学校之过,尽显世态炎凉
  • 【neo4j】 图数据库neo4j cypher单一语句 optional 可选操作的技巧
  • ip地址分为几大类-IP和子网掩码对照表
  • 第四篇: 用Python和SQL在BigQuery中进行基础数据查询
  • OpenCV中使用EdgeDrawing模块查找圆
  • C++在游戏领域的主要应用
  • 基于SpringBoot的“CSGO赛事管理系统”的设计与实现(源码+数据库+文档+PPT)
  • Web Broker(Web服务应用程序)入门教程(2)
  • redis:list列表命令和内部编码
  • .Net Core Configuration用法
  • 分享一些企业选择管理顾问公司的成功经验
  • 「Qt Widget中文示例指南」如何实现窗口嵌入?
  • 企业CRM选型必看:2024年最佳CRM系统排行
  • SQL入门的基础知识
  • JS渗透(安全)
  • 淘宝扭蛋机小程序,功能优势分析
  • Redis 数据备份与恢复
  • CentOS9 Stream 设置禁用IPV6
  • C语言 | Leetcode C语言题解之第530题二叉搜索树的最小绝对差
  • 【系统设计】高效的分布式系统:使用 Spring Boot 和 Kafka 实现 Saga 模式
  • 蓝桥杯 python day01 第一题
  • 10款好用的win10录屏软件带你体验专业录屏。
  • 2025浙江省考报名流程详细教程
  • unity3d——关于GetComponent<T>()
  • Spring 框架中常见的注解(Spring、SpringMVC、SpringBoot)
  • Hms?: 1渗透测试
  • 1、Qt6 Quick 简介
  • 大模型论文集-20241103
  • GESP4级考试语法知识(计数排序-桶排序)