IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C中继承的字符串库以及字符串数组 -> 正文阅读

[C++知识库]C中继承的字符串库以及字符串数组

从C语言中继承的库以及函数

scanf :
int a; scanf ("%d", &a);
这里的 "%d"是占位符, 函数从标输入读取字符串。 按照 int 类型进行解析, 处理之后保存在 a 变量中, 必须提供a 的地址才能保存成功
对于其他的数据类型,有不同的占位符:
有符号整数 (int):%d 或 %i
字符型 (char) :%c
字符串(string) :%s
无符号性整数 (undesign):%u
浮点数(double):%f
科学技术法 : %e
内存地址 : %p

对于字符串 如果用%s 读入字符串, 那么只能将其保存在C风格的字符串数组中(char),而不能直接将其保存到C++的 std::string 中

scanf在遇到空格时就已经终止读入了,并不会包括空格

printf用法几乎和scanf一样

sprintf将格式化的数据写到一个字符串里

sprintf(information, "%s is a %s. He is %d-year-old and %fcm tall.", name, gender, age, height);

第一个参数是字符串变量,第二个参数才是格式

用于处理字符串的标准库 —— string.h——在C++中写作 cstring, 用#include导入
strlen 函数可以获取字符串的长度 strlen(string)
strcpy 函数可以复制字符串 //将 string 的内容复制到 copy 字符串中 strcpy(copy, string);
strcmp 函数用于比较两个字符串的大小 strcmp(a,b) 当a>b输出正数
strcat(hello, world); 连接字符串

int main() {
    char hello[100] = "hello ";
    char world[100] = "world"'
    printf("%s\n", hello);
    // 在下面进行字符串连接和输出
	strcat(hello, world);
    printf("%s\n",hello);
    return 0;
    }
	输出结果为 
	hello  
	hello world`

这里对字符串连接后,原来的字符串(字符数组)会随之改变

}**
字符串之间也有大小之分比较大小时,会对首字母的ascll码进行比较,与字符串的长度无关,除非是两个字符串只相差最后一个字符,那么少字符的就小于多字符的,若多出一个 空格,两字符串也是不相等的

在C语言中没有字符串类型 只能用字符数组来保存字符串

char name[10][10];
int main() {
    for (int i = 0; i < 10; i++){
            scanf("%s",&name[i]);
    } //这里表示可以输入10个字符串,每个字符串独占一行,每行的
    //字符数不超过10个

vector
vector 的模板定义保存在头文件中,
使用vector还需要引入对应的命名空间:
using std::vector;
用 vector 定义一个动态数组的写法:

vector<类型>数组对象名(长度);//其中数组长度可以是一个表达式
定义一个大小为10 的,存储整型变量的动态数组对象 array:
vector<int>arr(10);
也可以不定义初始长度:
vector<int>arr;

vector<类型>数组对象名(数组长度,元素初值);
vector v(10,1); //建立一个有10和元素的vector整型对象v, 初值全设置为1

vector 是一个被封装的对象, 不允许访问其地址,
其还有个成员函数size(),返回当前数组的大小
size的用法为 : 数组名.size();

创建一个vector类型的二维数组 :

vector<vector<int>> matrix(m);//matrix相当于一个元素类型都是vector<int>的vector对象,一共有m个元素

push_back —— vector的一个重要方法
其作用是 讲一个元素插入到当前vector 的末尾。这个方法可以自动扩容,不用担心容量或者下标越界。 用push_back 把 a 插入到 b[i] 中:

b[i].push_back(a);

sort函数

:有三个参数 sort(strat, end, 排列方式) 排列方式默认是从小到大 std::greater<数据类型>可以实现降序排列

sort(arr.begin(),arr,end(),greater<int>());
start ——> 数组首元素的地址 用begin获取
end ——> 数组末元素的地址 用end获取
greater<int>() ——>实现降序,若不写就是升序

Find函数

find(strat, end, 查找元素):用于在指定范围内查找和目标元素值相等的第一个元素。
find() 函数的底层实现,其实就是用运算符将 查找元素 和 [strat, end) 区域内的元素逐个进行比对。这也就意味着, [strat, end) 区域内的元素必须支持"=="运算符.

find(arr.begin(), arr.end(), 查找元素);
start ——> 数组首元素的地址 用begin获取
end ——> 数组末元素的地址 用end获取


读入若干个数字,然后对其进行从大到小排序,依次输出这些数字,并输出其个数。要去除其中重复的数字

#include <vector>
#include <iostream>
#include <algorithm>
using std::greater;
using namespace std;
using std::vector;
int main(){
    int input;
    int i = 0;
    vector<int>arr;
    while(cin >> input){
        auto iter = find(arr.begin(), arr.end(), input);
        if (iter == arr.end()){
            arr.push_back(input);
        }
        i = i + 1;
    }
    sort(arr.begin(),arr.end(),greater<int>());
    for (int i = 0; i < arr.size(); i++){
        cout << arr[i] << endl;
    }
    cout << arr.size();
}

输入:
3
1
2
5
4

输出:
5
4
3
2
1
5

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-02 10:37:50  更:2021-08-02 10:38:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/9 22:08:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码