zoukankan      html  css  js  c++  java
  • C++一些函数

    目录

    1. #include <algorithm> 里的nique()函数.. 1

    2. #include <algorithm> 里的count函数.. 2

    4.字符串反转#include<algorithm>的reverse(s.begin(),s.end()); 3

    5.最大和最小.. 4

    6. #include <algorithm> 里的:排列生成器(全排列).. 4

    7.字符串截取string中的.. 5

    学一下强制类型转换.. 5

    8.strlwr,strupr函数大写转小写  小写转大写.. 6

    9.strcmp比较字符串s1和s2,区分字母的大小写.. 6

    10.strcmpi比较字符串s1和s2,但不区分字母的大小写。.. 6

    11.swap是用于交换两个变量的值的.. 7

    12.c++ string怎样判断字符串里面是否含有某个字符串?.. 8

    13.C++位运算.. 11

    14. 11

    15.itoa(num,arr,10)在stdlib.h里:int转char[] 12

    16.strcat()连接两个字符串.. 13

    1. #include <algorithm> 里的nique()函数

    unique()函数是一个去重函数,STL中unique的函数 unique的功能是去除相邻的重复元素(只保留一个),还有一个容易忽视的特性是它并不真正把重复的元素删除。他是c++中的函数,所以头文件要加#include<algorithm>,具体用法如下:

        int num[100];

       unique(num,mun+n)返回的是num去重后的尾地址后面的地址,之所以说比不真正把重复的元素删除,其实是,该函数把重复的元素一到后面去了,然后依然保存到了原数组中,然后返回去重后最后一个元素的地址,因为unique去除的是相邻的重复元素,所以一般用之前都会要排一下序。

    #include<iostream>

    #include<algorithm>

    using namespace std;

    int main()

    {

        int a[]={1,2,2,3,3,4,4,8,8,5};

        int *m=unique(a,a+10);

        int k=m-a;

        for(int i=0;i<k;i++)

        {

            cout<<a[i]<<endl;

        }

        return 0;

    }

    2. #include <algorithm> 里的count函数

    .count函数:返回这个值出现次数的统计结果

    #include<iostream>

    #include<algorithm>

    using namespace std;

    int main()

    {

        int a[]={1,2,2,3,3,4,4,8,8,5,2};

        int n=11;

        cout<<count(a, a+11, 2)<<endl;

        return 0;

    }

    3. #include <algorithm> 里的find()

    #include <iostream>

    #include <algorithm>

    using namespace std;

    int main()

    {

        int m[]={35,5,5,9,3,7,10};

        int n=7;

        if (find(m,m+n,10) == m+n-1)

            cout << "yes" << endl;

        else

            cout << "no" << endl;

        cout<<find(m,m+n,5)-m<<endl;//在数组中第一次出现的位置的数组下标

    }

    4.字符串反转#include<algorithm>的reverse(s.begin(),s.end());

    #include<iostream>

    #include<string>

    #include<algorithm>

    using namespace std;

    int main ()

    {

            string s;

            s="123456";

            reverse(s.begin(),s.end());

            cout<<s;

            return 0;

    }

    5.最大和最小

    两个值中较大的max()//在#include<iostream>里

    两个值中较小的min()//在#include<iostream>里

    序列中的最小元素:min_element()  //返回的是地址  在#include<algorithm>里

    序列中的最大元素:max_element()  //返回的是地址 在#include<algorithm>里

    #include <iostream>

    #include <algorithm>

    using namespace std;

    int main()

    {

        int m[]={35,5,5,9,3,7,10};

      cout<<max(35,5)<<endl;

      cout<<min(35,5)<<endl;

      cout<<max_element(m,m+7)<<endl;

       cout<<min_element(m,m+7)-m<<endl;//输出数组下标

    }

    6. #include <algorithm> 里的:排列生成器(全排列)

    按字典序的前一个排列:prev_permutation()

    按字典序的下一个排列:next_permutation()

    (next_permutation()用法http://blog.sina.com.cn/s/blog_9f7ea4390101101u.html)

    next_permutation()用之前得先用sort()升序   sort不能对string类型的排序

    7.字符串截取string中的

       s.substr(pos, n)    截取s中从pos开始(包括0)的n个字符的子串,并返回

        s.substr(pos)        截取s中从从pos开始(包括0)到末尾的所有字符的子串,并返回

    #include<iostream>

    #include<string>

    using namespace std;

    int main ()

    {

         string s="0123456";

            string a=s.substr(4,2);

             cout<<s<<endl;

          cout<<a<<endl;

    }

    0123456

    45

    学一下强制类型转换

    #include<iostream>

    #include<string>

    using namespace std;

    int main ()

    {

        char ch='A'+1 ;

        cout<<ch<<endl;

       return 0;

       }

    8.strlwr,strupr函数大写转小写  小写转大写

    #include <string.h>

    #include<iostream>

    using namespace std;

    int main()

    {

      char a[]="1233asdSDSFAsdaSDFG";

      cout<<strlwr(a)<<endl;//a不能是string类型的,必须是char型数组

      cout<<strupr(a)<<endl;

        return 0;

    }

    9.strcmp比较字符串s1和s2,区分字母的大小写

    C/C++函数,比较两个字符串

    设这两个字符串为str1,str2,

    若str1==str2,则返回零;

    若str1<str2,则返回负数;

    若str1>str2,则返回正数。

    10.strcmpi比较字符串s1和s2,但不区分字母的大小写。

    用法:#include <string.h>

    功能:比较字符串s1和s2,但不区分字母的大小写。(字符串必须是char型数组,不能是string)

    说明:strcmpi是到stricmp的宏定义,实际未提供此函数。

    当s1<s2时,返回值<0

    当s1=s2时,返回值=0

    当s1>s2时,返回值>0

    #include<iostream>

    #include<cstring>//cstring=string.h但!=string

    using namespace std;

    int main(){

        char str1[11],str2[11];

        int type;

        cin>>str1;//cin输入的是不含空格的字符串

        cin>>str2;

        if(strlen(str1)!=strlen(str2)) cout<<"1";

        else{

            if(!strcmp(str1,str2)) cout<<"2";

            else if(!strcmpi(str1,str2)) cout<<"3";

            else cout<<"4";

        }

        cout<<endl;

        return 0;

    }         

    11.swap是用于交换两个变量的值的

    需要使用#include<algorithm>

    导入algorithm头文件才可以使用。

    这个函数在交换两个Int 类型的变量的时候,可以这样写:

    int x = 10, y = 20;                         // x:10 y:20
    swap(x, y);

    经过上面的操作后,x就等于20,y就等于10了

    这个就是swap的用法

    swap()交换string型字符串中的两个不同位置字符

    12.c++ string怎样判断字符串里面是否含有某个字符串?

    例如:string str="afdsdfs_hello_sdfas#@!";
    怎样判断str里面是否含有“hello",,谢谢
     
    使用 string 的 find 成员函数。 
    #include <iostream>
    #include <string>
    using namespace std;
    int main()
    {
    string str = "afdsdfs_hello_sdfas#@!";
    string str1 = "hello";

    string::size_type idx = str.find( str1 );

    if ( idx != string::npos )
    {
    cout << "字符串含有“<< str1 << " ";
    }
    else
    {
    cout << "字符串没有" << str1 << " ";
    }
    }
    解析:string::npos是个返回值

    string 类提供了 6 种查找函数,每种函数以不同形式的 find 命名。
    这些操作全都返回 string::size_type 类型的值,以下标形式标记查找匹配所发生的位置;或者返回一个名为 string::npos 的特殊值(它说明查找没有匹配的)。string 类将 npos 定义为保证大于任何有效下标的值。

    所以 当 str.find("哦")==string::npos时则说明字符串str中不存在“哦”这个字符,
    反之,str.find("哦")!=string::npos则说明字符串str中存在“哦”这个字符

    法二 strstr()函数

    包含文件:string.h

    函数名: strstr

    函数原型:

         extern char *strstr(char *str1, const char *str2);

    语法:

    * strstr(str1,str2)

    str1: 被查找目标 string expression to search.

    str2: 要查找对象 The string expression to find.

    返回值:若str2是str1的子串,则返回str2在str1的首次出现的地址;如果str2不是str1的子串,则返回NULL。

    #include <iostream>

    #include <string>

    #include <string.h>

    using namespace std;

    int main()

    {

    char a[]="12345";

    char b[]="123";

    if (  strstr(a,b)!=NULL )

    {

    cout << "字符串含有"<< " ";

    }

    else

    {

    cout << "字符不串有"<< " ";

    }

    }

    13.C++位运算

    #include <stdio.h>
    main()
    {
     int a=3;
     int b = 5;
     printf("%d",a&b);
    }

    #include <stdio.h>
    main()
    {
     int a=060;
     int b = 017;
     printf("%d",a|b);
    }

    #include <stdio.h>
    main()
    {
     int a=071;
     int b = 052;
     printf("%d",a^b);
    }

    #include <stdio.h>
    main()
    {
     int a=071;
     int b = 052;
     printf("%d",a^b);
    }

    #include <stdio.h>
    main()
    {
     int a=077;
     printf("%d",~a);
    }

    14

    #include<iostream>

    using namespace std;

    void f(char a[])

    {

          cout<<a[1]<<endl;

    }

    void m(char *a)

    {

          cout<<a[1]<<endl;

    }

    int main()

    {

          char *a={"adff"};

          char b[]={"aaaaagaaaaaaaa"};

          f(a);

          f(b);

          m(a);

          m(b);

          return 0;

    }

    15.itoa(num,arr,10)在stdlib.h里:int转char[]

    atoi()

    #include <stdio.h>

    #include <stdlib.h>

    int main ()

    {

        int i;

        char buffer[256];

        printf ("Enter a number: ");

        scanf("%s",&buffer);

        i = atoi (buffer);

        printf ("The value entered is %d.", i);

        return 0;

    }

    16.strcat()连接两个字符串

  • 相关阅读:
    简单工厂、工厂方法和抽象工厂的学习笔记
    单一职责原则,开-闭原则,依赖倒置原则
    我对面向对象设计的理解——Java接口和Java抽象类
    高可用与负载均衡的区别
    应用交付、负载均衡(Load balancing)、高可用、F5
    四种常见的 POST 提交数据方式
    Git fetch和git pull的区别
    苹果Mac OS X显示隐藏文件的方法
    Appium教程---Client/Server Architecture
    UNIX网络编程——使用线程的TCP回射服务器程序
  • 原文地址:https://www.cnblogs.com/zhangshuyao/p/8661578.html
Copyright © 2011-2022 走看看