zoukankan      html  css  js  c++  java
  • c++数字,数组,字符串

    1,数字

    实例

    #include <iostream>
    using namespace std;
    int main ()
    {
    // 数字定义
    short s;
    int i;
    long l;
    float f;    //32位
    double d;    //64位
    // 数字赋值
    s = 10;
    i = 1000;
    l = 1000000;
    f = 230.47;
    d = 30949.374;
    // 数字输出
    cout << "short s :" << s << endl;
    cout << "int i :" << i << endl;
    cout << "long l :" << l << endl;
    cout << "float f :" << f << endl;
    cout << "double d :" << d << endl;
    return 0;
    }

    数字运算相关的内置函数:使用的时候先要导入头文件<cmath>

    序号函数 & 描述
    1 double cos(double);
    该函数返回弧度角(double 型)的余弦。
    2 double sin(double);
    该函数返回弧度角(double 型)的正弦。
    3 double tan(double);
    该函数返回弧度角(double 型)的正切。
    4 double log(double);
    该函数返回参数的自然对数。
    5 double pow(double, double);
    假设第一个参数为 x,第二个参数为 y,则该函数返回 x 的 y 次方。
    6 double hypot(double, double);
    该函数返回两个参数的平方总和的平方根,也就是说,参数为一个直角三角形的两个直角边,函数会返回斜边的长度。
    7 double sqrt(double);
    该函数返回参数的平方根。
    8 int abs(int);
    该函数返回整数的绝对值。
    9 double fabs(double);
    该函数返回任意一个十进制数的绝对值。
    10 double floor(double);
    该函数返回一个小于或等于传入参数的最大整数。

    实例:

    #include <iostream>
    #include <cmath>
    using namespace std;
    int main ()
    {
    // 数字定义
    short s = 10;
    int i = -1000;
    long l = 100000;
    float f = 230.47;
    double d = 200.374;
    // 数学运算
    cout << "sin(d) :" << sin(d) << endl;    //-634939    正弦
    cout << "abs(i) :" << abs(i) << endl;    //1000    绝对值
    cout << "floor(d) :" << floor(d) << endl;    //200    求最大整数
    cout << "sqrt(f) :" << sqrt(f) << endl;    //15.1812
    cout << "pow( d, 2) :" << pow(d, 2) << endl;    //401497.7 次方运算
    return 0;
    }

    补充随机数:srand+rand

    #include <iostream>    //输入输出流头文件
    #include <ctime>    //时间相关的头文件
    #include <cstdlib>    //系统时间相关的头文件
    using namespace std;
    int main ()
    {
    int i,j;
    // 设置种子
    srand( (unsigned)time( NULL ) );
    /* srand函数是随机数发生器的初始化函数。原型: void srand(unsigned seed);用法:它需要提供一个种子,这个种子会对应一个随机数,如果使用相同的种子后面的rand()函数会出现一样的随机数。如: srand(1); 直接使用 1 来初始化种子。不过为了防止随机数每次重复,常常使用系统时间来初始化,即使用 time 函数来获得系统时间生成 10 个随机数 */
    for( i = 0; i < 10; i++ )
    {
    // 生成实际的随机数
    j= rand();
    cout <<"随机数: " << j << endl;
    }
    return 0;
    }

    补充获取一定范围内的随机数:

    #include <iostream>
    #include<stdio.h>
    #include<time.h>
    #define random(x)(rand()%x)    //需要提前声明一下random函数才能用,函数方法是求余数
    using namespace std;
    
    int main()
    {
        srand((int)time(0));//部署随机种子
        for (int i = 0; i < 10; i++){
            cout << random(100) << endl;    //求0-100内的随机数就是把系统常用的求随机数的方法除以100然后取余数
            //输出0-100的随机数
        };
        return 0;
    }

    2,数组

    C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量。

    声明数组:

    double balance[10];
    //声明一个包含10个double元素的数组balance,balance 是一个可用的数组,可以容纳 10 个类型为 double 的数字。

    初始化:

    double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
    //大括号 { } 之间的值的数目不能大于我们在数组声明时在方括号 [ ] 中指定的元素数目,当然方括号内也可以不加数字,此时系统会自动添加上元素的初始化时候的个数,如:double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};和上面的例子是一样的

    为某个元素赋值:

    balance[4] = 51;

    赋值和获取数组内的元素实例:

    #include <iostream>
    using namespace std;
    int main ()
    {
    int n[ 10 ]; // n 是一个包含 10 个整数的数组
    // 初始化数组元素 
    for ( int i = 0; i < 10; i++ )
    {
    n[ i ] = i + 100; // 设置元素 i 为 i + 100
    }
    cout << "Element" << "Value" << endl;
    // 输出数组中每个元素的值 
    for ( int j = 0; j < 10; j++ )
    {
    cout << j << n[ j ] << endl;
    }
    return 0;
    }

    补充:

    多维数组:

    初始化(以二维数组为例):

    int a[3][4] = {  
     {0, 1, 2, 3} ,   /*  初始化索引号为 0 的行 */
     {4, 5, 6, 7} ,   /*  初始化索引号为 1 的行 */
     {8, 9, 10, 11}   /*  初始化索引号为 2 的行 */
    };
    //以下也是可以的:
    int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
    
    

    访问二维数组:

    #include <iostream>
    using namespace std;
     
    int main ()
    {
       // 一个带有 5 行 2 列的数组
       int a[5][2] = { {0,0}, {1,2}, {2,4}, {3,6},{4,8}};
     
       // 输出数组中每个元素的值 ,直接全局遍历一遍好了                     
       for ( int i = 0; i < 5; i++ )
          for ( int j = 0; j < 2; j++ )
          {
             cout << "a[" << i << "][" << j << "]: ";
             cout << a[i][j]<< endl;
          }
     
       return 0;
    }

    数组详解看2-4篇介绍

     3,字符串

    c风格的字符串:

    本质上是一堆字符数组,存储在数组中,因为用null‘’结尾,所以数组比普通的数组长1,

    声明和初始化:

    char greeting[6] = {'H', 'e', 'l', 'l', 'o', ''};
    char greeting[] = "Hello";

    字符串相关操作:

    序号函数 & 目的
    1 strcpy(s1, s2);
    复制字符串 s2 到字符串 s1。
    2 strcat(s1, s2);
    连接字符串 s2 到字符串 s1 的末尾。
    3 strlen(s1);
    返回字符串 s1 的长度。
    4 strcmp(s1, s2);
    如果 s1 和 s2 是相同的,则返回 0;如果 s1<s2 则返回值小于 0;如果 s1>s2 则返回值大于 0。
    5 strchr(s1, ch);
    返回一个指针,指向字符串 s1 中字符 ch 的第一次出现的位置。
    6 strstr(s1, s2);
    返回一个指针,指向字符串 s1 中字符串 s2 的第一次出现的位置。

    c++标准库提供的string类:需要引入头文件<string>

    #include <iostream>
    #include <string>
    using namespace std;
    int main ()
    {
    string str1 = "Hello";
    string str2 = "World";
    string str3;    //声明但是没有初始化
    int len ;
    // 复制 str1 到 str3
    str3 = str1;
    cout << "str3 : " << str3 << endl;    //World
    // 连接 str1 和 str2
    str3 = str1 + str2;    //HelloWorld
    cout << "str1 + str2 : " << str3 << endl;
    // 连接后,str3 的总长度
    len = str3.size();
    cout << "str3.size() : " << len << endl;    //10
    return 0;
    }

     string其他的可用函数:

    •  1. append() -- 在字符串的末尾添加字符
    •  2. find() -- 在字符串中查找字符串
    •  4. insert() -- 插入字符
    •  5. length() -- 返回字符串的长度
    •  6. replace() -- 替换字符串
    •  7. substr() -- 返回某个子字符串

    实例:

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
        //定义一个string类对象
        string http = "www.runoob.com";
    
       //打印字符串长度
       cout<<http.length()<<endl;
    
        //拼接
        http.append("/C++");
        cout<<http<<endl; //打印结果为:www.runoob.com/C++
    
        //删除
        int pos = http.find("/C++"); //查找"C++"在字符串中的位置
        cout<<pos<<endl;
        http.replace(pos, 4, "");   //从位置pos开始,之后的4个字符替换为空,即删除
        cout<<http<<endl;
    
        //找子串runoob
        int first = http.find_first_of("."); //从头开始寻找字符'.'的位置
        int last = http.find_last_of(".");   //从尾开始寻找字符'.'的位置
        cout<<http.substr(first+1, last-first-1)<<endl; //提取"runoob"子串并打印
    
        return 0;
    }
  • 相关阅读:
    网络编程基础----并发编程 ---守护进程----同步锁 lock-----IPC机制----生产者消费者模型
    Socketserver
    网络编程基础---并发编程--多进程
    网络基础之操作系统--多道技术--进程
    信息标记 以及信息提取--xml-json-yaml
    网络基础之网络协议篇---CS架构--网络通信--osi 协议---套接字socket--粘包
    HTTP协议 与 Requests库
    Requests 库
    2015/08/24
    1、pyspider安装
  • 原文地址:https://www.cnblogs.com/0-lingdu/p/10669931.html
Copyright © 2011-2022 走看看