C++-C(0)-字符串-vector-string-基本操作

在C++里用C函数是常用的。有时分不清哪个是C哪个是C++了。

 

CC++
内置整形

int、long、short、
unsigned、char、

unsigned long、long

unsigned int、int、

unsigned short(16)、short、
unsigned char、signed char

unsigned long(32) 、 unsigned long long(64)

 

内置浮点类型float、doublefloat、double、long double
字符串

char name[40];
int size,letters;
float weight;
printf("%s","what is your name?\n");
scanf("%s",name);             //输入名字
printf("%s","what is your weight?\n",name);
scanf("%f",&weight);          //输入体重
size=sizeof(name);
letters=strlen(name);
printf("well,%s your volume is  %2.2f feet \n",name,volume);//格式化输出

C风格字符串
char dog[3]={'a','b','c',};
char cat[4]={'a','b','c','\0'};//字符串 string
 

char bird[11]="Mrs Bubbles"        //‘\0’
char fish[]="Bubbles"                  //compiler count

string str="panther";
 

字符串长度

char msg[]="this is a message";

int m_len=strlen(msg);//1.长度
 



int len1=str1.size();        //sizeof()(有'\0',)
int len2=strlen(char2); //strlen()(可见字符,无'\0',)


char c[]="adifgao";
int m_sizec=sizeof(c):    //7

char * pc="adjfgih";
int mp_size=sizeof(pc);   //4 数据类型长度
int mp_len=strlen(pc);     //7 字符串长度


char *pnewc= new char [1024];
int mp_newsize=sizeof(pnewc): //
 

拼接字符串

defined SIZE 80;

char dest[SIZE];
char src[]="s smell like old shoes";
strcat(dest,src);
strncat(dest,src,len);

string  str1,str2,str3;
str1=str2+str3;
str1+=str2;
 
复制字符串

char char1[20];
char char2[20]="abcde";

strcpy(char1,char2);//copy char2 to char1
strcat(char1,char2);//append char2 to char1

字符串比较

defined ANSWER "Grant"
defined SIZE      40
char *s_gets(char* st,int n);
char *s_gets(char* st,int n)

{

char * ret_val;
int i=0;
ret_val=fgets(st,n,stdin);

if(ret_val)
{

while(st[i]!='\n'&&st[i]!='\0')
  i++;
  if(st[i]=='\n') st[i]='\0';

  else while(getchar()!='\n')

       continue;

}

return ret_val;

}
viod main()
{
     char c1[SIZE]; 
     puts("who is buried in Grant tomb?");
     s_gets(c1,SIZE);
     while(strcmp(c1,ANSWER)!=0)
    {

       puts("NO,that is wrong,try again");

     }

}

strcmp(c1,ANSWER)// 0 -1 1
strcpy()
strncpy()
sprintf()
 

枚举enum spectrum{red,orange};
enum bits{one=1,two=2,eight=4}
bits myflag;
myflag=bits(6);//不是枚举值,但这样写没问题。
enum bigstep{frist,second=100,third}
 
指针

int higgens=5;
int *pt=&higgens;


int *pt=new int ;
*pt=1001;
delete pt;


short *ps= new short[500];
delete [] ps;


//动态数组
int *psome =new int[10];
psome[0]=0.2;
psome[1]=0.3;
..
delete [] psome;

char animal[20]="bear";

const char * bird="wren";
char *ps;

ps=new char[strlen(animal)+1];  //获取副本
strcpy(ps,animal);





 

数组
数组的替代品

vector<int> vi;

array<int,5> ai;
array<double,4> ad={1.2,2.1,3.43,4.4};
array<typename,n_elem> arr;

1.vector  增删改查
   

#include <string.h>
#include <vector>
#include <iostream>
using namespace std;//1.vector 增删改查
void vector_test(void)
{cout << "STLvector(void)";cout<<"******//1.创建与添加  push_back(0-5)******"<<endl;vector<int>  vi;    for (int i = 0; i < 5; i++){vi.push_back(i);cout << vi[i] << ",";}cout << "******//2.插入insert(vi.begin()+vi.size(),6)******" << endl;vi.insert(vi.begin()+vi.size(),6);cout << endl;cout << "******//3.删除  pop_back()******" << endl;for (int i = 0; i < vi.size(); i++){vi.pop_back();//3.删除}cout << "******删除 后 ******" << endl;vector<int>::iterator it;//声明一个迭代器,来访问vector容器,作用:遍历或者指向vector容器的元素 for (it = vi.begin(); it != vi.end(); it++){cout << *it << " ";}cout << endl;cout << "******//4 批量添加 string 5个******" << endl;vector<string> vstr(5, "ab");// 创建5个string "00"vstr.push_back("111");vstr.push_back("222");for (int i = 0; i < vstr.size(); i++){cout << vstr[i] << ",";}}

2.string  增删改查+格式化输出
   

#include <string>
#include <vector>void testStr()
{int i;string strUp = "THIS IS A STRING";char ch;vector <char> vc;cout << " strUp********************************" << endl;cout << strUp << endl;int len = strUp.size();cout << len << endl;for (i = 0; i < len; i++){ch = tolower(strUp[i]);vc.push_back(ch);}cout << " strLow********************************" << endl;//vector<char>::iterator it;for (i = 0; i < len; i++){cout << vc[i];}cout << endl;//iterator 访问vector<char>::iterator it;for (it = vc.begin(); it != vc.end(); it++){cout << *it;}}

#include <string>
#include <vector>string myFormat(const char* pszFmt, ...)
{std::string str;va_list args;va_start(args, pszFmt);{int nLength = _vscprintf(pszFmt, args);nLength += 1;  //上面返回的长度是包含\0,这里加上std::vector<char> vectorChars(nLength);_vsnprintf(vectorChars.data(), nLength, pszFmt, args);str.assign(vectorChars.data());}va_end(args);return str;
}void mystringFormat()
{std::string str;int m_int = 10;int i = 10;str = format("i=%c", i);string.Format("{ 0:D2 }", 1223)
/*	string.Format(”{ 0:D2 }”, 1223)// 结果为:1223,'//	3、用分号隔开的数字,并指定小数点后的位数string.Format(”{ 0:N }”, 14200) //结果为:14, 200.00 (默认为小数点后面两位)string.Format(”{ 0:N3 }”, 14200.2458) //结果为:14, 200.246 (自动四舍五入)//	4、格式化百分比string.Format(”{ 0:P }”, 0.24583) //结果为:24.58 % (默认保留百分的两位小数)string.Format(”{ 0:P1 }”, 0.24583) //结果为:24.6 % (自动四舍五入)//	5、零占位符和数字占位符string.Format(”{ 0:0000.00 }”, 12394.039)// 结果为:12394.04string.Format(”{ 0:0000.00 }”, 194.039) //结果为:0194.04string.Format(”{ 0:###.## }”, 12394.039) //结果为:12394.04string.Format(”{ 0:####.# }”, 194.039) //结果为:194string.Format(”{ 0:d }”, System.DateTime.Now) //结果为:2009 - 3 - 20 (月份位置不是03)string.Format(”{ 0:D }”, System.DateTime.Now) //结果为:2009年3月20日string.Format(”{ 0:f }”, System.DateTime.Now) //结果为:2009年3月20日 15:37string.Format(”{ 0:F }”, System.DateTime.Now) //结果为:2009年3月20日 15 : 37 : 52string.Format(”{ 0:g }”, System.DateTime.Now) //结果为:2009 - 3 - 20 15 : 38string.Format(”{ 0:G }”, System.DateTime.Now) //结果为:2009 - 3 - 20 15 : 39 : 27string.Format(”{ 0:m }”, System.DateTime.Now) //结果为:3月20日string.Format(”{ 0:t }”, System.DateTime.Now) //结果为:15 : 41string.Format(”{ 0:T }”, System.DateTime.Now) //结果为:15 : 41 : 50
}


int main()
{string str="abc";cout<<"size: "<<str.size()<<endl;cout<<"length: "<<str.length()<<endl;cout<<"sizeof(str): "<<sizeof(str)<<endl;string a="a";cout<<"sizeof(a): "<<sizeof(a)<<endl;
}#size: 3
#length: 3
#sizeof(str): 32
#sizeof(str): 32



 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

02【保姆级】-GO语言开发注意事项(特色重点)

02【保姆级】-GO语言开发注意事项&#xff08;特色重点&#xff09; 一、Go语言的特性1.1 第一个hello word&#xff08;详解&#xff09;1.2 开发编译。&#xff08;重要点 / 面试题&#xff09;1.3 开发注意事项1.4 GO语言的转义字符1.5 注释1.6 API 文档 一、Go语言的特性 …

el-upload 组件上传/移除/报错/预览文件,预览图片、pdf 等功能

目录 页面代码样式代码页面展示 页面代码 dialog.vue <!-- 上传文件 --> <template><el-dialogtitle"上传文件":visible.sync"dialogVisible"width"60%"top"6vh":close-on-click-modal"false"close"h…

Python JSON 使用指南:解析和转换数据

JSON 是一种用于存储和交换数据的语法。JSON 是文本&#xff0c;使用 JavaScript 对象表示法编写。 Python 中的 JSON Python 有一个内置的 json 包&#xff0c;可用于处理 JSON 数据。 示例&#xff1a;导入 json 模块&#xff1a; import json解析 JSON - 从 JSON 转换为…

重温云栖,分享十年成长:我和云栖的故事

文章目录 前言活动背景我和云栖的交际历届峰会主题2009201020112012201320142015201620172018202120222023 技术带来的变化工作生活关注的领域 后记 前言 云栖大会&#xff0c;前身可追溯到2009年的地方网站峰会&#xff0c;2011年演变为阿里云开发者大会&#xff0c;2015年正式…

OpenCV标定演示,及如何生成标定板图片

标定的程序在官方的源码里有&#xff0c; opencv-4.5.5\samples\cpp\tutorial_code\calib3d\camera_calibration 很多小白不知道怎么跑起来&#xff0c;这个也怪OpenCV官方&#xff0c;工作没做完善&#xff0c;其实的default.xml是要自己手动改的&#xff0c;输入的图片也要…

在Maven中发布项目到Nexus私有服务器

一、测试环境 Sonatype Nexus 3.61.0-02 Maven 3.9.2 二、环境配置 2.1找到maven的配置文件 2.2添加私有仓库账户密码 <servers><server><id>nexus</id><username>admin</username><password>admin</password></server&…

rfsoc FPGA 49DR 16收16发模块

前面简单介绍过RFSOC板卡 https://blog.csdn.net/jingjiankai5228/article/details/114734631 整体来说RFSOC降低了传统AD DA软硬件开发难度&#xff0c;但是同样存在整数点FS/N谐波大的问题 交织采样是通过多个AD拼接完成的&#xff0c;所以校准比较关键&#xff0c;和以前常…

【React】03.脚手架的进阶应用

文章目录 暴露webpack配置暴露前后的区别config文件夹&#xff1a;scripts文件夹&#xff1a;package.json 常见的配置修改1.把sass改为less2.配置别名3.修改域名和端口号4.修改浏览器兼容5.处理Proxy跨域 2023年最新珠峰React全家桶【react基础-进阶-项目-源码-淘系-面试题】 …

【0基础学Java第五课】-- 方法的使用

5. 方法的使用 5.1 什么是方法5.2 方法定义5.3方法调用的执行过程例题&#xff1a;求n的阶乘和 5.4 实参和形参的关系&#xff08;重点&#xff09;5.5 没有返回值的方法5.6 方法重载5.7 方法签名5.8 递归5.9 递归练习按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4)递归…

每天学习都很累,该怎么办?

中考淘汰一批人&#xff0c;高考又淘汰一批人&#xff0c;能杀进大学的&#xff0c;都知道高考的累。好不容易进了大学&#xff0c;却发现仍有打卡、作业、考试。 加上每天满满的课表&#xff0c;只是看看就让人心累。 为了奖学金或升学就业&#xff0c;又得去卷绩点、卷比赛、…

计算机毕业设计选题推荐-超市售货微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

操作系统:文件管理(一)文件系统基础

一战成硕 4.1 文件系统基础4.1.1 文件的基本概念4.1.2 文件控制块和索引结点4.1.3 文件的操作4.1.4 文件保护4.1.5 文件的逻辑结构4.1.6 文件的物理结构 4.1 文件系统基础 4.1.1 文件的基本概念 文件是以硬盘为载体的存储在计算机上的信息的结合。 在系统运行时&#xff0c;计…

深度神经网络的数学原理:基于超平面、半空间与线性区域的表示

概述 以前的文章主要描述了神经网络&#xff0c;即多层感知机、全连接模型的运行原理&#xff0c;还是以实验为主&#xff0c;数学描述为辅的方式&#xff0c;这篇文章以纯数学的视角来描述神经网络的运行原理&#xff0c;主要以前馈过程为主&#xff08;反向传播的动力学过程…

深度学习入门(二)之神经网络

文章目录 从感知机到神经网络神经网络的例子复习感知机激活函数 激活函数sigmoid函数阶跃函数的实现阶跃函数的图形sigmoid函数的图形sigmoid函数与阶跃函数比较非线性函数ReLU函数 多维数组的运算多维数组矩阵乘法神经网络的内积 三层神经网络的实现符号确认各层间信号传递的实…

【51单片机】LED与独立按键(学习笔记)

一、点亮一个LED 1、LED介绍 LED&#xff1a;发光二极管 补&#xff1a;电阻读数 102 > 10 00 1k 473 > 47 000 2、Keil的使用 1、新建工程&#xff1a;Project > New Project Ctrl Shift N &#xff1a;新建文件夹 2、选型号&#xff1a;Atmel-AT89C52 3、xxx…

uniapp原生插件之视频图片选择安卓原生插件

插件介绍 本地相册图片和视频多选Android扩展原生插件 插件地址 视频图片选择安卓原生插件 - DCloud 插件市场 超级福利 uniapp 插件购买超级福利 插件申请权限 存储卡读写权限 manifest.json权限列表 /* android打包配置 */"android" : {"permission…

Mozilla Firefox 119 现已可供下载

Mozilla Firefox 119 开源网络浏览器现在可以下载了&#xff0c;是时候先看看它的新功能和改进了。 Firefox 119 改进了 Firefox View 功能&#xff0c;现在可以提供更多内容&#xff0c;如最近关闭的标签页和浏览历史&#xff0c;你可以按日期或网站排序&#xff0c;还支持查…

spring 和 idea 建议不要使用 @Autowired注解

spring 和 idea 建议不要使用 Autowired注解 一. 问题描述二. 警告原因和如何去除三. 个人的收获和解决方案3. 1 个人感受3.2 通过构造函数解决警告问题 四. 小知识4.1 使用Autowired还会出现循环依赖的问题么4.2 Autowired 和 Resource区别 前言 这是我在这个网站整理的笔记,有…

vivo 自研蓝河操作系统 BlueOS 发布:支持大模型、BlueXlink 协议实现万物互联

大家好&#xff0c;我是 Lorin , 2023 年 11 月 1 日&#xff0c;在今天的 2023 年 vivo 开发者大会上&#xff0c;vivo 自主研发的蓝河操作系统&#xff08;BlueOS&#xff09;正式亮相。这款操作系统被宣传为一款面向未来的智能操作系统&#xff0c;具备出色的支持能力&#…

PlantSimulation访问本地Excel文件的方法

PlantSimulation访问本地Excel文件的方法 PlantSimulation访问本地Excel文件的方法PlantSimulation访问本地Excel文件的方法 //Param StatusTable,T_DataTable:object var T_DataTable:object:=DataTable IF NOT isComputerAccessPermittedMESSageBox("计算机访问被阻止,…