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‘\0’结尾,所以数组比普通的数组长1,

声明和初始化:

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
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;
}

 

posted @ 2019-07-07 22:25  0点0度  阅读(554)  评论(0编辑  收藏  举报