c++初步

作业:

  1. 定义自己的命名空间,其中有string类型的变量,再定义两个函数,一个函数完成字符串的输入,一个函数完成求字符串长度,再定义一个全局函数完成对该字符串的反转
#include <iostream>
#include <cstring>
using namespace std;
namespace A{
    void fun1(string s1);
}
void A::fun1(string s1){
    cout<<s1<<endl;
}
void fun2(char arr[],int len){
    for(int i=0;i<len/2;i++){
        int temp;
        temp=arr[i];
        arr[i]=arr[len-i-1];
        arr[len-i-1]=temp;
    }
for(int i=0;i<len;i++){
    cout<<arr[i];
}
}
using namespace A;
int main()
{
   string s1="";
   cout<<"请输入字符串"<<endl;
   cin>>s1;
   fun1(s1);
   char arr[32]="";
   strcpy(arr,s1.data());
   int len=s1.size();
   fun2(arr,len);
   return 0;
}

一、第一个C++程序

1.cout输出流对象

cout控制格式输出,只能输出十六进制、八进制和十进制

//输出a的16进制
    cout << "a的十六进制:" << hex << a << endl;
cout << setbase(16) << a << endl;   //输出十六进制
 cout << "右对齐四个宽度输出a: " << dec << setw(4) << a << endl;
 cout << "左对齐四个宽度输出a: " << setw(4) << left << a << endl;
 cout << "b指定小数点后4位输出" << setprecision(4) << b << endl;  //4位包含小数点

2.cin输入流对象

//使用cin输入三个变量
    cin >> a;
    cin >> c;
    cin >> b;

二、命名空间

命名空间只能定义全局处/其他命名空间中

1.在命名空间中声明函数

#include <iostream>
using namespace std;

namespace A
{
    int a=100;
    void fun();  //在命名空间A中存放了函数声明
}

//命名空间中声明,命名空间外定义
//需要加上命名空间名和域限定符限定是哪一个命名空间中的函数
void A::fun()
{
    cout << "test" << endl;
}

int main()
{
    std::cout << A::a << endl;
    A::fun();  //test
    return 0;
}

2.命名空间冲突的解决

如果导入了命名空间中和全局变量冲突的标识符时,后续访问该标识符会报错

访问命名空间中的标识符: 命名空间名::标识符名

访问全局变量: ::标识符名; (全局变量,默认在程序的匿名空间中)

三、string字符串

c++中将字符串封装乘string类,后续可以用string定义字符串变量

1.string类

#include <iostream>
using namespace std;
int main()
{
    string s1 = "hello";  //定义了一个字符串s1并赋值为hello
    cout << "s1=" << s1 << endl;
    
    string s2(3,'a');   //定义了一个字符串s2并使用3个a初始化
    cout << "s2=" << s2 << endl;
    
    string s3(s1);   //定义了一个字符串s3使用s1初始化
    cout << "s3=" << s3 << endl;

    string s4("hi");   //定义了一个字符串s4使用hi初始化
    cout << "s4=" << s4 << endl;

    cout << "s1+s2 = " << s1+s2 << endl;  //将s1和s2拼接到一起
    s4 = s1+s2;
    cout << "s4 = " << s4;

    return 0;
}

2.  c字符串与c++字符串的转化

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

//需要使用c_str函数和data函数玩长城C++风格向C风格的转换
int main()
{
    string s1 = "hello";  //定义了一个字符串s1并赋值为hello

    char str[100];
    strcpy(str,s1.c_str());
    cout << str << endl;

    string s2 = " world";
    strcat(str,s2.data());
    cout << str << endl;

    string s3 = str;  //C风格字符串可以直接给string类型赋值
    cout << s3 << endl;
    cout << (s3>s2) << endl;
    //string类型可以直接进行比较无需调用strcmp函数,运算符重载
    return 0;
}

3.string类中的函数

1.at()

cout<<s1.at(100)<<endl;

2.size()/length()

s1.size()

s1.length()

3.empty()/clear()

s1.empty:对字符串判空

s1.clear:清空字符串

4.字符串的判断

可以直接使用!=,==,>,>=····运算符直接判断字符串间的关系

四、bool类型

  1. bool类型的默认值,0/false
  2. bool的大小,1Byte(内存分配的最小单位是Byte)
  3. bool类型的赋值,可以直接使用true和false赋值,可以用数值直接赋值
  4. bool输出,默认以数字形式输出,如果想用单词形式输出,需要加上boolalpha,恢复数字形式,加上noboolalpha

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/489514.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

虚拟 DOM 的优缺点有哪些

虚拟DOM&#xff08;Virtual DOM&#xff09;技术作为现代前端开发中的重要组成部分&#xff0c;已经成为了众多流行前端框架的核心特性。它的引入为前端开发带来了诸多优势&#xff0c;同时也需要我们认真思考其潜在的考量。下面简单的介绍一下虚拟DOM技术的优势与缺点&#x…

ESCTF-OSINT赛题WP

这你做不出来?check ESCTF{湖北大学_嘉会园食堂} 这个识图可以发现是 淡水渔人码头 但是 osint 你要发现所有信息 聊天记录说国外 同时 提示给了美国 你综合搜索 美国 渔人码头 在美国旧金山的渔人码头&#xff08;英语&#xff1a;Fisherman’s Wharf&#xff09;是一个著名旅…

rust中字符串String常用方法和注意事项

Rust 中通常说的字符串指的是&#xff1a;String 和 &str(字符串字面值、或者叫字符串切片)这两种类型。str是rust中基础字符串类型&#xff0c;String是标准库里面的类型。Rust 中的字符串本质上是&#xff1a;Byte的集合&#xff08;Vec<u8>&#xff09; 基础类型…

使用EasyYapi插件简化导出yapi接口

安装 &#xff1a; 关键配置&#xff1a; 其中的token在这里拿&#xff1a; 使用&#xff1a; 导出当前Controller下的所有api&#xff1a;使用下图命令可仅导出指定的api: 附&#xff1a;配置部分参考了idea&#xff1a;使用easyYapi插件导出yapi接口

docker--docker网络(四)

1. docker网络模式 docker安装成功后&#xff0c;会自动创建三个网络&#xff0c;可以通过如下的方式查看&#xff1a; lisenubuntu:~$ sudo docker network ls [sudo] password for lisen: NETWORK ID NAME DRIVER SCOPE 8994fe397802…

将谷歌 Gemma AI大模型 部署安装本地教程(可离线使用)

CSDN 成就一亿技术人&#xff01; 作者主页&#xff1a;点击&#xff01; ————前言———— 谷歌 Gemma 是一个基于 Python 的图像分析工具&#xff0c;提供快速和准确的物体检测、定位、分类和风格迁移功能。它使用 TensorFlow Lite 模型&#xff0c;使它可以快速运行在…

金和OA C6 IncentivePlanFulfill.aspx SQL注入漏洞复现

0x01 产品简介 金和网络是专业信息化服务商,为城市监管部门提供了互联网+监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 0x02 漏洞概述 金和OA C6 IncentivePlanFulfill.aspx接口处存在SQL注入漏洞,攻击者除了可以利用 SQ…

Matlab-写入mhd和raw医学图像处理格式文件

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 mhd和raw是什么&#xff1f; MHD&#xff08;MetaImage&#xff09;和RAW&#xff08;Raw Image Data&#xff09;是用于医学图像…

【力扣hot100】207 课程表(c++、python)解析

相关题目: 210 课程表2 【力扣hot100】207 课程表(c++、python)解析 1.官方题解:1.1深搜c++版本python版本1.2广搜c++1.官方题解: 这是一题经典的「拓扑排序」问题 给定一个包含 n 个节点的有向图 G,我们给出它的节点编号的一种排列,如果满足:对于图 G 中的任意一条…

PTA引水入城

在一个遥远的国度&#xff0c;一侧是风景秀美的湖泊&#xff0c;另一侧则是漫无边际的沙漠。该国的行政区划十分特殊&#xff0c;刚好构成一个 N 行 M 列的矩形&#xff0c;如上图所示&#xff0c;其中每个格子都代表一座城市&#xff0c;每座城市都有一个海拔高度。 为了使居民…

如何实现无公网IP及服务器实现公网环境企业微信网页应用开发调试

文章目录 1. Windows安装Cpolar2. 创建Cpolar域名3. 创建企业微信应用4. 定义回调本地接口5. 回调和可信域名接口校验6. 设置固定Cpolar域名7. 使用固定域名校验 企业微信开发者在应用的开发测试阶段&#xff0c;应用服务通常是部署在开发环境&#xff0c;在有数据回调的开发场…

百度百科词条创建流程是怎样的?

百度百科词条&#xff0c;作为当今权威的知识分享平台之一&#xff0c;越来越多的个人和企业希望自己在百度百科上拥有独立的词条。如何创建一个高质量的百度百科词条呢&#xff1f;本文伯乐网络传媒将为您详细解析百度百科词条的创建流程及编辑技巧&#xff0c;并提供一些常见…

【YOLOv5改进系列(4)】高效涨点----添加可变形卷积DCNv2

可变形卷积 &#x1f680;&#x1f680;&#x1f680;前言一、1️⃣ 什么是可变形卷积二、2️⃣如何在yolov5中添加DCNv2模块2.1 &#x1f393; 修改common.py模块2.2 ✨修改yolo.py文件2.3 ⭐️修改yolov5s.yaml文件2.4 &#x1f3af;训练可能报错结果 三、3️⃣DCNv2实验结果…

【好书推荐3】Python网络爬虫入门到实战

【好书推荐3】Python网络爬虫入门到实战 写在最前面内容简介作者简介目录前言/序言 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你的陪伴与支持 ~ &#x1f680; 欢迎一起踏上探险之旅&#xff0c;挖掘无限可能&#xff…

关于《海岛奇兵》中n点能量可造成最大伤害的计算

最近在玩海岛奇兵, 里面有 武器A, 第n次使用消耗(10 6 * (n - 1))点能量并造成18315伤害; 武器B, 第n次使用消耗 (3 2 * (n - 1))点能量并造成8124伤害, 就想着能不能写一个程序计算一下, 当有x点能量时, 可造成的最大伤害是多少? 分别使用AB武器各多少次? 讨论: https://…

《仙剑7》登陆Xbox主机平台年末大作空窗期

首发一年后&#xff0c;《仙剑奇侠传7》终于登陆Xbox主机平台&#xff0c;而这也恰逢Xbox平台年末大作的窗口期。 随着年底大作的稀缺&#xff0c;以及海外3A RPG《星空》的延期&#xff0c;2022年底的这段时间给Xbox玩家体验《刀剑7》留下了一段空白。 可以说是因祸得福。 《仙…

微服务的可观测性

微服务是是一个大型的分布式系统&#xff0c;服务之间相互依赖支撑系统功能。同时对微服务系统的监控也是微服务体系的重要组成分。对微服务系统的监控主要分为三大部分&#xff0c;Trace追踪&#xff0c;Metrics指标&#xff0c;Log日志。 这三大部分几乎记录了微服务的前部信…

Stable Diffusion之核心基础知识和网络结构解析

Stable Diffusion核心基础知识和网络结构解析 一. Stable Diffusion核心基础知识1.1 Stable Diffusion模型工作流程1. 文生图(txt2img)2. 图生图3. 图像优化模块 1.2 Stable Diffusion模型核心基础原理1. 扩散模型的基本原理2. 前向扩散过程详解3. 反向扩散过程详解4. 引入Late…

【linux】进程地址空间(进程三)

目录 快速了解&#xff1a;引入最基本的理解&#xff1a;细节&#xff1a;如何理解地址空间&#xff1a;a.什么是划分区域&#xff1a;b.地址空间的理解&#xff1a; 为什么要有进程空间&#xff1f;进一步理解页表与写时拷贝&#xff1a; 快速了解&#xff1a; 先来看这样一段…

算法系列--两个数组的dp问题(1)

&#x1f495;"低头要有勇气&#xff0c;抬头要有底气。"&#x1f495; 作者&#xff1a;Mylvzi 文章主要内容&#xff1a;算法系列–两个数组的dp问题(1) 大家好,今天为大家带来的是算法系列--两个数组的dp问题(1),两个数组的dp问题在动态规划问题中属于较难的部分…