c++常用函数/STL(持续更新中·····)

c++常用函数/STL(持续更新中·····)

本人大二,写博客只是为了积累学过的知识!!!
正在自学算法,有兴趣的私信一起学习呀!!!
寒假冲冲冲!!!

输入/输出技巧

cin讲解
cin 可以连续从键盘读取想要的数据,以空格、tab 或换行作为分隔符
当 cin>> 从缓冲区中读取数据时,若缓冲区中第一个字符是空格、tab或换行这些分隔符时,cin>> 会将其忽略并清除,继续读取下一个字符,若缓冲区为空,则继续等待。但是如果读取成功,字符后面的分隔符是残留在缓冲区的,cin>> 不做处理。

1、
当定义了一个字符串数组时,可以直接用 cin 读入一个字符串

char a [N];
cin>>a+1;  //从下标为1的地方开始

2、
可以用 cin 读取用空格隔开的字符
例:假设输入3个操作符(中间用空格隔开)
a b c

char  s[4];
for(int i=0;i<3;i++)
cin>>s[i];             //会自动忽略掉中间的空格

3、puts()函数

头文件:#include<stdio.h>
puts()函数用于将一字符串放到标准输出流(stdout)中,并在最后增加换行符 ‘\n’,其函数原型如下:
int puts(char *string);
【参数】string为要输出的字符串。
最主要是输出自动换行

printf("%s\n", name);
puts(name);         //第一种使用方法
二者是等价的
puts("hello world");//第二种使用方法

unique去重函数

unique(begin,end)
begin 首地址 end 最后一个元素的后一个地址
unique()是C++标准库函数里面的函数,其功能是去除相邻的重复元素(只保留一个),所以使用前需要对数组进行排序

那它是怎么实现去重的呢?删除?

不是,它并没有将重复的元素删除,而是把重复的元素放到数组的最后面藏起来了,函数最终结果返回重复元素开始的首地址。
例:

int a[15]={0,8,41,1,5,5,8,9,45,88,99,5,99,88,8};
  sort(a, a + 15);
    cout << "a数组排好序的序列" << endl;
    for (auto c : a)
        cout << c << ' ';
    puts("");
    int *p=unique(a, a + 15);
    cout << "a数组去重后的序列" << endl;
    for (auto c : a)
        cout << c << ' ';
    cout << endl<<"unique 函数返回的地址处的值" << endl;
    cout << *p;

输出
在这里插入图片描述

字母大小写

C库函数 int tolower(int c)转换给定的字母为小写。
C库函数 int toupper(int c)转换给定的字母为大写。

例:将 s 变成小写字符串

 string s;
 string get_lower(string s=a)
 {
     string res;
     for(auto c:s)
     res+=tolower(c);   //string 字符串可以直接相加减
     return res;   
 }
 s=get_lower(s);

strcmp函数

头文件:#include <string.h>

strcmp() 用来比较字符串(区分大小写),其原型为:
int strcmp(const char *s1, const char *s2);

【参数】s1, s2 为需要比较的两个字符串。

字符串大小的比较是以ASCII 码表上的顺序来决定,此顺序亦为字符的值。strcmp()首先将s1 第一个字符值减去s2 第一个字符值,若差值为0 则再继续比较下个字符,若差值不为0 则将差值返回。例如字符串"Ac"和"ba"比较则会返回字符"A"(65)和’b’(98)的差值(-33)。

【返回值】
若参数s1 和s2 字符串相同则返回0。
s1 若大于s2 则返回大于0 的值。
s1 若小于s2 则返回小于0 的值。

本人水平有限,如有错误敬请指正!!!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值