C++编程题

2023-10-26

1.计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)

贴代码

#include <iostream>
#include <string>
using namespace std;

int main(){
    string str;
    getline(cin, str);
    int count = 0;
    int end = str.length() - 1;
    while (end >= 0 && str[end] != ' ')
    {
        end--;
        count++;
    }
    cout << count;
    return 0;      
}

2.计算某字符出现次数

#include<iostream>
#include<string>
using namespace std;

int main(){
    string str;
    char s;
    int count = 0;
    getline(cin, str);
    cin >> s;
    if(s > 64)
    { 
        for (int i = 0; i < str.length(); i++)
        {
            if (str[i] == s || str[i] + 32 == s || str[i] - 32 == s)
            {
                count++;
            }
        }
    }
    else
    {
        for (int i = 0; i < str.length(); i++)
        {
            if (str[i] == s)
            {
                count++;
            }
        }
    }
    cout << count;
    return 0;
}

3.明明的随机数
    /*
    int n,num;
    int arr[500] = { 0 };
    while (cin>> num)
    {
        for (int i = 0; i < num; i++)
        {
            cin >> n;
            arr[n] = 1;
        }
    }
    for (int j = 0; j <= 500; j++)
    {
        if (arr[j] == 1)
        {
            cout << j << endl;
        }
    }
    return 0;

    */
    //set中的元素会自动排好序,且不允许有重复元素。set函数内部实现的结构是红黑树
    int n, num;
    set<int> ss;
    while (cin >> num)
    {
        ss.clear();
        while (num--)
        {
            cin >> n;
            ss.insert(n);
        }
        for (set<int>::iterator it = ss.begin(); it != ss.end(); it++)
        {
            cout << *it << endl;
        }
    }
    return 0;

}

4. 输入一串字符,按长度为8拆分,长度不是8补0

substr有2种用法:
假设:string s = "0123456789";

string sub1 = s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾:sub1 = "56789"

string sub2 = s.substr(5, 3); //从下标为5开始截取长度为3位:sub2 = "567"
 

#include <string>
#include <iostream>
using namespace std;

int main() {
    string str;
    while (cin >> str)
    {
        int len = str.length();
        if (len % 8 != 0)
        {
            int count = 8 - len % 8;
            str.append(count, '0');
        }

        for (int i = 0; i < str.length(); i += 8)
        {
            cout << str.substr(i, 8) << endl;
        }
    }
    return 0;
}

5.十六进制字符转十进制

#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
 
int main() {
    string s;
    while (cin >> s)
    {
        int bit = 0;
        int res = 0;
        for (int i = s.length() - 1; i> 1; i--)
        {
            if (s[i] >= '0' && s[i] <= '9')
            {
                res += (s[i] - '0') * pow(16, bit);
                bit++;
            }
            else if (s[i] >= 'A' && s[i] <= 'F')
            {
                res += (s[i] - 'A' + 10) * pow(16,bit);
                bit++;
            }
        }
        cout << res << endl;
    }
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++编程题 的相关文章

随机推荐

  • set容器、map容器

    set multiset 容器 set基本概念 简介 所有元素都会在插入时自动被排序 本质 set multiset属于关联式容器 底层结构是用二叉树实现 set和multiset区别 set不允许容器中有重复的元素 multiset允许容
  • elk笔记23--定期清理索引

    elk笔记23 定期清理索引 1 介绍 2 方案 代码 2 1 方案介绍 2 2 代码 2 3 测试 3 注意事项 4 说明 1 介绍 在生产环境中 如果日志量过大 就会导致集群持续产生很多索引 占用很多存储空间 因此需要定期清理索引 确保
  • 套圈·分治

    套圈 题目信息 输入 测试样例 解答 想法 题目信息 Have you ever played quoit in a playground Quoit is a game in which flat rings are pitched at
  • 闭环步进与伺服电机差异

    当给步进电机配备编码器闭环控制后 从广义上来看 闭环步进电机和伺服电机两者是没有什么大的区别 但是 要详细区分闭环步进电机和伺服电机的不同之处 你需要先了解一下伺服电机和步进电机的差异 闭环步进电机是在步进电机上加装了高精度的编码器 用伺服
  • 理解扩散模型:Diffusion Models & DDPM

    引言 在前面的博客中 我们讨论了生成模型VAE和GAN 近年来 新的生成模型 扩散模型受到越来越多的关注 因此值得好好去研究一番 扩散模型 Diffusion Models 最早由 2 于2015年提出 但直到2020年论文 3 发表之后才
  • 不断发展中的自然语言处理技术,会在未来消灭“笔”和“键盘”吗?

    花满楼 发布于2014 07 20 23 11 00 目前 Siri 和 Google Now 的语音识别技术虽然还不完善 但在未来却很可能威胁到文字的地位 我们手写或者打字 在当下已经成为了无比繁重的劳动 不断的输入各种文字信息 在网页上
  • 快手20230807提前批一面

    Q and A 面试官 你是专硕还是学硕 能不能让实习 研究方向 面试官 项目基于什么背景做的 xxx 面试官 介绍一下框架 xxxx 面试官 里面中用了什么技术 首先的话 服务层使用了springboot 并且使用了mp 持久化使用了my
  • angular7主题样式在线切换

    参考ng alain和delon 思路就是动态加载css文件 代码实现 写两套less文件 分别为light less和dark less 用相关插件将less文件转为一个js对象 less vars to js 插件 function g
  • Road Construction 【POJ - 3352】【Tarjan边双连通】

    题目链接 题意 给一个无向连通图 至少添加几条边使得去掉图中任意一条边不改变图的连通性 即使得它变为边双连通图 思路 就是去求一个缩点之后求度为1的点的个数 然后用 ans 1 2就可以得到最后的答案了 include
  • 计算机图像显示原理与BMP图像文件格式

    本篇文章详细讲述图像文件 里面有一些阐述为个人理解 如有不对的地方欢迎指正 后续会修正补全 计算机图像显示原理与BMP图像的文件格式 一 计算机图像显示原理简述 1 计算机图像分类 2 显示 3 彩色图转灰白图原理 二 BMP图像 1 BM
  • LeetCode题目笔记——面试题 02.05. 链表求和

    文章目录 题目描述 题目难度 中等 方法一 模拟 代码 C 代码 Python 方法二 递归 代码 C 进阶 借用栈或者先反转原链表 总结 题目描述 给定两个用链表表示的整数 每个节点包含一个数位 这些数位是反向存放的 也就是个位排在链表首
  • C语言用一种比较特别的方法打印金字塔

    本方法的思想是 先打印最左边的空格部分 然后再打印金字塔 打印金字塔方法是 把 和空格都考虑进去 然后再逐行进行打印每行 每行中奇数位打印 偶数位打印空格 include
  • ubuntu18.04 littlevgl运行环境搭建

    1 下载代码 git clone https gitclone com github com littlevgl pc simulator git cd pc simulator git submodule update init 2 编译
  • Linux常用技巧

    1 cd命令 用于切换当前目录 它的参数是要切换到的目录的路径 可以是绝对路径 也可以是相对路径 cd user1 进入user1用户的主目录 cd 返回上次所在的目录 2 pwd命令 显示工作路径 3 ls命令 查看文件与目录的命令 li
  • ChatGLM搭建记录

    ChatGLM 一 基本流程 0 学习初衷 1 ChatGLM简介 github地址 https github com THUDM ChatGLM 6B ChatGLM 6B 是一个开源的 支持中英双语的对话语言模型 基于 General
  • Java 多线程练习7:模拟网络购票

    需求 1 package GouPiao 2 3 4 模拟网络延时线程不安全 5 6 public class Site implements Runnable 7 private int count 10 记录剩余票数 8 private
  • 使用动软.net代码生成器生成数据库文档

    首先 进入动软 net代码生成器主界面 选择服务器 右击 选择 连接服务器 按照弹出的界面 操作 就可以将需要生成数据库文档的相关服务器添加进来 然后 选中服务器 选择工具栏中的 生成数据库文档 按钮 在弹出的 生成数据库文档 窗口中 依次
  • Blender一步一步用灰度图生成3D模型用于Gazebo/gzweb

    我们经常能在SDF格式文件中见到 dae stl模型文件 比如如下代码
  • 地址总线与数据总线

    CPU通过地址总线寻址 然后通过数据总线与外部设备互换信息 地址总线 地址总线的位数决定CPU寻址范围 若CPU的地址总线宽度是32位 那么CPU的寻址范围是4G 所以最多支持4G内存 数据总线 数据总线的位数决定CPU单次通信能交换的信息
  • C++编程题

    1 计算字符串最后一个单词的长度 单词以空格隔开 字符串长度小于5000 注 字符串末尾不以空格为结尾 贴代码 include