程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)

简介: 程序与技术分享:C++程序设计实验考试准备资料(2019级秋学期)

程序设计实验考试准备资料


——傲珂


#include


C++常用函数:


头文件


floor()


函数原型:double floor(double x);


作用:用于输出浮点类型中小于此数的最大整数


注:floor(n+0.5)可用于进行四舍五入的处理


ceil()


函数原型:double ceil(double x);


作用:用于输出浮点类型中大于此数的最大整数


atan()


作用:用来求π的值:atan(1)=π/4 π=4.0atan(1)


int abs ( int x) 求整数x的绝对值 绝对值


double


fabs(double x) 求实数x的绝对值 绝对值


long


labs (long x) 求长整型数的绝对值


绝对值


double acos(double x) 计算arcos(x)的值 计算结果


double asin(double x) 计算arsin(x)的值 计算结果


double atan(double x) 计算arctan(x)的值 计算结果


double cos(double x) 计算cos(x)的值 计算结果


double cosh(double x) 计算x的双曲余弦cosh(x)的值 计算结果


double exp(double x) 求的值 计算结果


double fmod(double x, double y) 求x/y的余数 余数的双精度数


double


log(double x) 计算In(x)的值 计算结果


double log10(double x) 计算的值 计算结果


double modf(double x, double y) 取x的整数部分送到y所指向的单元格中 x的小数部分


double sin(double x) 计算sin(x)的值 计算结果


double tan(double x) 计算tan(x)的值 计算结果


double


sqrt(double x) 求的值 计算结果


头文件#include


double atof(const char s)


将s所指向的字符串转换成实数 实数值


int atoi(const char s) 将s所指向的字符串转换成整数 整数值


long


atol(const char s) 将s所指的字符串转换成长整数 长整数值


max(a, b) 求两个数中的大数 大数 参数为任意类型


min(a,b) 求两个数中的小数 小数 参数为任意类型


int rand(void) 产生一个随机整数 随机整数


void srand(unsigned int) 初始化随机数产生器


★C++标准库提供了兼容C语言的字符串处理函数


#include


1. 字符串复制函数 (string copy)


△strcpy


strcpy(str1,str2);


//复制str2到str1


△strncpy


strncpy(str1,str2,n); //复制str2中不超过n个字符的字符串复制到str1


2.


字符串连接函数


(string catenate)


△strcat


strcat(str1,str2); //将str2连接到str1,包括空字符,并且str2无变化


△sstrncat


strncat(str1,str2,n); //将str2中不超过n个字符的字符串连接到str1上


3.


字符串比较函数(string compare)


△strcmp


strcmp(str1,str2); //自左向右比较str1和str2里面的字符的ASCII数值,直到出现不同字符或者空字符为止


4.


计算字符串长度函数(string length)


△strlen


L=strlen(str1); l=sizeof str1; //字面意思(但是不包括空字符)(注意:sizeof计算的是字符数组的长度)


5. 字符串转化为数值函数;


△atof


//双精度浮点型


△atoi //整形


6.


数据写入字符串的格式化输出函数sprintf


sprintf(str,“%d%d=%d",1,2,2)


; //输出结果不显示,存储在str中(“12=2”)


7.


从字符串读入数据的格式化输入函数sscanf


sscanf(“12 34”,“%d%d",&a,&b);


8.


返回一个指针,指向字符串s1中字符ch的第一次出现的位置;strchr(s1,ch);


9.


返回一个指针,指向字符串s1中字符串s2的第一次出现的位置;strstr(s1,s2);


cpp</p> <p> 1 #include </p> <p> 2 </p> <p> 3 #include </p> <p> 4 </p> <p> 5 </p> <p> 6 </p> <p> 7 using namespace std;</p> <p> 8 </p> <p> 9 </p> <p>10 </p> <p>11 int main ()</p> <p>12 </p> <p>13 {</p> <p>14 </p> <p>15 char str1【11】 = "Hello";</p> <p>16 </p> <p>17 char str2【11】 = "World";</p> <p>18 </p> <p>19 char str3【11】;</p> <p>20 </p> <p>21 int len ;</p> <p>22 </p> <p>23 </p> <p>24 </p> <p>25 // 复制 str1 到 str3</p> <p>26 </p> <p>27 strcpy( str3, str1);</p> <p>28 </p> <p>29 cout [ "strcpy( str3, str1) : " [ str3 [ endl;</p> <p>30 </p> <p>31 </p> <p>32 </p> <p>33 // 连接 str1 和 str2</p> <p>34 </p> <p>35 strcat( str1, str2);</p> <p>36 </p> <p>37 cout [ "strcat( str1, str2): " [ str1 [//代码效果参考:http://www.jhylw.com.cn/282732475.html<p></p> endl;</p> <p>38 </p> <p>39 </p> <p>40 </p> <p>41 // 连接后,str1 的总长度</p> <p>42 </p> <p>43 len = strlen(str1);</p> <p>44 </p> <p>45 cout [ "strlen(str1) : " [ len [ endl;</p> <p>46 </p> <p>47 </p> <p>48 </p> <p>49 return 0;</p> <p>50 </p> <p>51 }</p> <p>


★C++中的字符串类(动态内存管理(不必担心存储空间是否足够))(面向对象)


#include


输入 getline(cin,str);(输入一行,回车结束)


11. 复制(=)


str1 =“java”;


2. 将string转换为c风格字符串,返回char指针


str1.c_str();


3. 把str1中从pos开始的n个字符复制到s1字符组


str1.copy(s1,n,pos);


4. 将C风格字符串S1开始的n个字符赋值给str1


str1.assign(S1,n);


5. string对象允许使用加号(+)和复合赋值(+=)运算符来实现两 个字符串连接操作。


str1="12" , str2="AB" , str3="CD";


str1 = str2 + str3; //str1结果为ABCD


str1 = str1 + "PHP"; //str1结果为12PHP


str1 += str3; //str1结果为12CD


6. string对象可以使用关系运算符来对字符串进行比较


str1="ABC" , str1="XYZ";


str1 > str2; //结果为假


str1 == str2;//结果为假


7. string对象可以调用其成员函数来实现字符串处理,这里列举一些 重要的操作,更详细的内容可以查阅C++标准库手册。


str1="ABCDEFGHIJK"; //获取字符串的长度


n = str1.size(); //n为11


n = str1.length(); //n为11


b = str1.empty(); //b为假 //检查字符串是否为空字符串


//得到子字符串 str2 =


str1.substr(2,4); //从下标2开始的4个字符,str2为CDEF


//查找子字符串 n = str1.find("DEF",pos);


//从pos开始查找字符串"DEF"在str1中的位置,n为 3


//删除字符 str1.erase(3,5);


//从下标3开始往后删5个字符,str1变为ABCIJK


//增加字符


str1.append("12345",1,3); //在str1末尾增加"12345"下标从1开始的3个字符, 即"234"


//字符串替换和插入操作


str1.replace(p0,n0,S1,n); //删除从p0开始的n0个字符,然后在p0处插入字符串 S1前n个字符


str1.replace(p0,n0,str2,pos,n); //删除从p0开始的n0个字符,然后在p0处插


入字符串str2中pos开始的前n个字符


str1.insert(p0,S1,n); //在p0位置插入字符串S1前n个字符


str1.insert(p0,str2,pos,n); //在p0位置插入字符串str2中pos开始的


前n个字符


字符串对象数组 可以定义字符串对象数组,即数组元素是字符串对象,定义形式与


数组类似,


例如: string SY【5】={"Jiang","Cao","Zou","Liu","Wei"};


//定义字符串对象数组且初始化


string


SY【5】={"123","12","1234","1","12345"};


//长度 3,2,4,1,5


char


SA【5】【20】={"123","12","1234","1","12345"};


//长度均是20


cpp</p> <p> 1 #include </p> <p> 2 </p> <p> 3 #include [span style="color: rgba(0, 0, 255, 1)">string</span]</p> <p> 4 </p> <p> 5 </p> <p> 6 </p> <p> 7 using namespace std;</p> <p> 8 </p> <p> 9 </p> <p>10 </p> <p>11 int main ()</p> <p>12 </p> <p>13 {</p> <p>14 </p> <p>15 string str1 = "Hello";</p> <p>16 </p> <p>17 string str2 = "World";</p> <p>18 </p> <p>19 string str3;</p> <p>20 </p> <p>21 int len ;</p> <p>22 </p> <p>23 </p> <p>24 </p> <p>25 // 复制 str1 到 str3</p> <p>26 </p> <p>27 str3 = str1;</p> <p>28 </p> <p>29 cout [ "str3 : " [ str3 [ endl;</p> <p>30 </p> <p>31 </p> <p>32 </p> <p>33 // 连接 str1 和 str2</p> <p>34 </p> <p>35 str3 = str1 + str2;</p> <p>36 </p> <p>37 cout [ "str1 + str2 : " [ str3 [ endl;</p> <p>38 </p> <p>39 </p> <p>40 </p> <p>41 // 连接后,str3 的总长度</p> <p>42 </p> <p>43 len = str3.size();</p> <p>44 </p> <p>45 cout [ "str3.size() : " [ len [ endl;</p> <p>46 </p> <p>47 </p> <p>48 </p> <p>49 return 0;</p> <p>50 </p> <p>51 }</p> <p>


1. append() -- 在字符串的末尾添加字符


2.


find() -- 在字符串中查找字符串


4.


insert() -- 插入字符


5.


length() -- 返回字符串的长度


6.


replace() -- 替换字符串


7.


substr() -- 返回某个子字符串


cpp</p> <p> 1 #include </p> <p> 2 </p> <p> 3 #include [span style="color: rgba(0, 0, 255, 1)">string</span]</p> <p> 4 </p> <p> 5 using namespace std;</p> <p> 6 </p> <p> 7 </p> <p> 8 </p> <p> 9 int main()</p> <p>10 </p> <p>11 {</p> <p>12 </p> <p>13 //定义一个string类对象</p> <p>14 </p> <p>15 string http = "onlinetutor";</p> <p>16 </p> <p>17 </p> <p>18 </p> <p>19 //打印字符串长度</p> <p>20 </p> <p>21 cout[http.length()[endl;</p> <p>22 </p> <p>23 </p> <p>24 </p> <p>25 //拼接</p> <p>26 </p> <p>27 http.append("/C++");</p> <p>28 </p> <p>29 cout[http[endl; //打印结果为:onlinetutor/C++</p> <p>30 </p> <p>31 </p> <p>32 </p> <p>33 //删除</p> <p>34 </p> <p>35 int pos = http.find("/C++"); //查找"C++"在字符串中的位置</p> <p>36 </p> <p>37 cout[pos[endl;</p> <p>38 </p> <p>39 http.replace(pos, 4, ""); //从位置pos开始,之后的4个字符替换为空,即删除</p> <p>40 </p> <p>41 cout[http[endl;</p> <p>42 </p> <p>43 </p> <p>44 </p> <p>45 //找子串runoob</p> <p>46 </p> <p>47 int first = http.find_first_of("."); //从头开始寻找字符'.'的位置</p> <p>48 </p> <p>49 int last = http.find_last_of("."); //从尾开始寻找字符'.'的位置</p> <p>50 </p> <p>51 cout[http.substr(first+1, last-first-1)[endl; //提取"runoob"子串并打印</p> <p>52 </p> <p>53 </p> <p>54 </p> <p>55 return 0;</p> <p>56 </p> <p>57 }</p> <p>


cpp</p> <p> 1 #include</p> <p> 2 </p> <p> 3 using namespace std;</p> <p> 4 </p> <p> 5 </p> <p> 6 </p> <p> 7 #define N 100</p> <p> 8 </p> <p> 9 int main()</p> <p>10 </p> <p>11 {</p> <p>12 </p> <p>13 char X【N】;</p> <p>14 </p> <p>15 cin.getline(X,N); //以cin.getline形式输入</p> <p>16 </p> <p>17 int a=0,b=0;</p> <p>18 </p> <p>19 for(int i=0;i<N;i++)</p> <p>20 </p> <p>21 {</p> <p>22 </p> <p>23 if(X【i】=='#') //为#为结束标志</p> <p>24 </p> <p>25 break;</p> <p>26 </p> <p>27 if(X【i】>='0'&&X【i】<='9')</p> <p>28 </p> <p>29 a++; //统计数字个数</p> <p>30 </p> <p>31 if((X【i】>='a'&&X【i】<='z')||(X【i】>='A'&&X【i】<='Z'))</p> <p>32 </p> <p>33 b++; //统计英文字母个数</p> <p>34 </p> <p>35 }</p> <p>36 </p> <p>37 cout[a[endl[b[endl;</p> <p>38 </p> <p>39 return 0;</p> <p>40 </p> <p>41 }</p> <p>


将一个数字逆序:


1 Int nixu(int n){


2


3 int t,k=0;


4


5 for(t=n;t>0;t=t/10){


6


7 k=10k+t%10;


8


9 }


10


11 return k;


12


13 }


<a href="javascript:voi

相关文章
|
10天前
|
存储 算法 编译器
程序与技术分享:C++模板元编程简介
程序与技术分享:C++模板元编程简介
|
10天前
|
自然语言处理 C语言 C++
程序与技术分享:C++写一个简单的解析器(分析C语言)
程序与技术分享:C++写一个简单的解析器(分析C语言)
|
4天前
|
编译器 C++
【C++】string类的使用④(字符串操作String operations )
这篇博客探讨了C++ STL中`std::string`的几个关键操作,如`c_str()`和`data()`,它们分别返回指向字符串的const char*指针,前者保证以&#39;\0&#39;结尾,后者不保证。`get_allocator()`返回内存分配器,通常不直接使用。`copy()`函数用于将字符串部分复制到字符数组,不添加&#39;\0&#39;。`find()`和`rfind()`用于向前和向后搜索子串或字符。`npos`是string类中的一个常量,表示找不到匹配项时的返回值。博客通过实例展示了这些函数的用法。
|
4天前
|
存储 C++
【C++】string类的使用③(非成员函数重载Non-member function overloads)
这篇文章探讨了C++中`std::string`的`replace`和`swap`函数以及非成员函数重载。`replace`提供了多种方式替换字符串中的部分内容,包括使用字符串、子串、字符、字符数组和填充字符。`swap`函数用于交换两个`string`对象的内容,成员函数版本效率更高。非成员函数重载包括`operator+`实现字符串连接,关系运算符(如`==`, `&lt;`等)用于比较字符串,以及`swap`非成员函数。此外,还介绍了`getline`函数,用于按指定分隔符从输入流中读取字符串。文章强调了非成员函数在特定情况下的作用,并给出了多个示例代码。
|
9天前
|
C++
【C++】日期类Date(详解)②
- `-=`通过复用`+=`实现,`Date operator-(int day)`则通过创建副本并调用`-=`。 - 前置`++`和后置`++`同样使用重载,类似地,前置`--`和后置`--`也复用了`+=`和`-=1`。 - 比较运算符重载如`&gt;`, `==`, `&lt;`, `&lt;=`, `!=`,通常只需实现两个,其他可通过复合逻辑得出。 - `Date`减`Date`返回天数,通过迭代较小日期直到与较大日期相等,记录步数和符号。 ``` 这是236个字符的摘要,符合240字符以内的要求,涵盖了日期类中运算符重载的主要实现。
|
4天前
|
C++
【C++】string类的使用④(常量成员Member constants)
C++ `std::string` 的 `find_first_of`, `find_last_of`, `find_first_not_of`, `find_last_not_of` 函数分别用于从不同方向查找目标字符或子串。它们都返回匹配位置,未找到则返回 `npos`。`substr` 用于提取子字符串,`compare` 则提供更灵活的字符串比较。`npos` 是一个表示最大值的常量,用于标记未找到匹配的情况。示例代码展示了这些函数的实际应用,如替换元音、分割路径、查找非字母字符等。
|
4天前
|
C++
C++】string类的使用③(修改器Modifiers)
这篇博客探讨了C++ STL中`string`类的修改器和非成员函数重载。文章介绍了`operator+=`用于在字符串末尾追加内容,并展示了不同重载形式。`append`函数提供了更多追加选项,包括子串、字符数组、单个字符等。`push_back`和`pop_back`分别用于在末尾添加和移除一个字符。`assign`用于替换字符串内容,而`insert`允许在任意位置插入字符串或字符。最后,`erase`函数用于删除字符串中的部分内容。每个函数都配以代码示例和说明。
|
4天前
|
安全 编译器 C++
【C++】string类的使用②(元素获取Element access)
```markdown 探索C++ `string`方法:`clear()`保持容量不变使字符串变空;`empty()`检查长度是否为0;C++11的`shrink_to_fit()`尝试减少容量。`operator[]`和`at()`安全访问元素,越界时`at()`抛异常。`back()`和`front()`分别访问首尾元素。了解这些,轻松操作字符串!💡 ```
|
4天前
|
存储 编译器 Linux
【C++】string类的使用②(容量接口Capacity )
这篇博客探讨了C++ STL中string的容量接口和元素访问方法。`size()`和`length()`函数等价,返回字符串的长度;`capacity()`提供已分配的字节数,可能大于长度;`max_size()`给出理论最大长度;`reserve()`预分配空间,不改变内容;`resize()`改变字符串长度,可指定填充字符。这些接口用于优化内存管理和适应字符串操作需求。