c/c++语言学习
姜亚轲
这个作者很懒,什么都没留下…
展开
-
输入字符串按字符顺序升序输出
题目描述:输入一个字符串,长度小于等于200,然后将输出按字符顺序升序排序后的字符串。输入:测试数据有多组,输入字符串。输出:对于每组输入,输出处理后的结果。样例输入:bacd样例输出:abcdc语言代码:#include <stdio.h>#include <string.h>int main(){ char s[200]; char t; int i,j;...原创 2018-05-10 17:12:49 · 13617 阅读 · 0 评论 -
C++默认构造函数
C++ 默认构造函数是对类中的参数提供默认值的构造函数,一般情况下,是一个没有参数值的空函数,也可以提供一些的默认值的构造函数,如果用户没有定义构造函数,那么编译器会给类提供一个默认的构造函数,但是只要用户自定义了任意一个构造函数,那么编译器就不会提供默认的构造函数,这种情况下,容易编译报错,所以正确的写法就是用户在定义构造函数的时候,也需要添加一个默认的构造函数,这样就不会造成编译报错。...原创 2018-06-17 13:57:19 · 14690 阅读 · 0 评论 -
C++虚基类
可以使用作用域分辨符来来存放不同数据、进行不同操作,但也可以通过虚基类来维护一个成员副本。将共同基类设置为虚基类,这时不同路径继承过来的同名数据成员在内存中就只有一个副本,同一个函数名也只有一个映射。虚基类成员在派生过程中和派生类一起维护同一个内存数据副本,这一点其实很好理解。 我们来看一下没有声明虚基类的程序:#include &amp;lt;iostream&amp;gt;using ...原创 2018-06-29 10:55:29 · 2491 阅读 · 0 评论 -
C++继承与派生
类的继承,是新的类从已有类那里得到已有的特性,而已有类称为基类,新类称为派生类。类的继承方式分为public (公有继承)、protected(保护继承)、private(私有继承)三种。不同的继承方式,导致原来具有不同访问属性的基类成员在派生类中的访问属性也有所不同。公有继承(public):当类的继承方式为公有继承时,基类的公有成员和保护成员在派生类中不变,基类的私有成员不能直接被...原创 2018-06-18 16:29:23 · 309 阅读 · 0 评论 -
C++中volatile的作用
代码编译环境:Windows7 32bits+VS2012。volatile是“易变的”、“不稳定”的意思。volatile是C的一个较为少用的关键字,它用来解决变量在“共享”环境下容易出现读取错误的问题。1.volatile的作用定义为volatile的变量是说这变量可能会被意想不到地改变,即在你程序运行过程中一直会变,你希望这个值被正确的处理,每次从内存中去读这个值,而不是因编译器...转载 2018-07-08 14:09:40 · 14354 阅读 · 6 评论 -
C++中宏的替代解决方案
宏在C++中的替代解决方案&nbsp; &nbsp; &nbsp;宏,在C语言中是个神的存在,能够玩出各种花样,也正因为此,才会给普通程序员造成不少的困扰。由于宏只在预编译阶段起作用,使得编译器无法检测其中的Bug,作为新时代的C++程序员,还是远离的好。C++为宏提供了一些替代的解决方案,嗯,是一些。&nbsp;1.&nbsp;常量定义#define NUM 100《Ef...转载 2018-07-04 10:07:04 · 1555 阅读 · 0 评论 -
C++数值与字符串转换
C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream头文件。 istringstream类用于执行C风格的串流的输入操作。 ostringstream类用于执行C风格的串流的输出操作。 stringstream类同时可以支持C++风格的串流的输入输出操作。下图详细描述了几种类...原创 2018-06-28 21:38:48 · 1727 阅读 · 0 评论 -
C++虚函数与纯虚函数
虚函数 如果需要通过基类的指针指向派生类的对象,并访问某个与基类同名的成员,那么首先在基类中将这个同名函数声明为虚函数。这样就可以通过基类指针,使属于不同派生类的不同对象产生不同的行为,从而实现运行过程的多态。如果你编写代码的时候,并不能确定调用的是基类的函数还是哪个派生类的函数时,你可以选择使用虚函数。 即在类的定义中使用virtual关键字来限定函数成员,不过注意虚函数声明只能...原创 2018-06-29 10:07:49 · 578 阅读 · 0 评论 -
C++简单的文件I/O(一)
写入到文本文件:#include &lt;iostream&gt;#include &lt;fstream&gt;using namespace std;int main(){ ofstream outFile; outFile.open("123.txt"); outFile&lt;&lt;&原创 2018-07-04 16:25:09 · 617 阅读 · 1 评论 -
C++传递数组给函数
一般方法C++ 传数组给一个函数,可以传一个数组首地址和一个数组长度:#include &amp;amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;amp;gt;using namespace std;const int size = 5;int sum_arr(const int arr[],int n){ int total = 0; for(int i=0; i&amp;amp;am原创 2018-07-05 13:06:23 · 12312 阅读 · 0 评论 -
C++派生类构造函数
如果对基类初始化时,需要调用基类的带有形参表的构造函数时,派生类就必须声明构造函数,提供一个将参数传递给基类构造函数的途径,保证在基类进行初始化时能够获得必要的数据。派生类构造函数执行的一般次序如下:1、调用基类构造函数,调用顺序按照它们被继承时声明的顺序(从左向右)。 2、对派生类新增的成员对象初始化,调用顺序按照它们在类中声明的顺序。 3、执行派生类的构造函数体中的内容。...转载 2018-06-21 19:44:51 · 919 阅读 · 0 评论 -
C语言中#ifdef,#ifndef和#endif的作用
1、用于注释掉一段代码我们自己编写程序的时候,需要看到一系列的调试代码,但是发给客户的时候,客户可不希望看到什么什么OK的代码,所以我们希望能很容易地注释掉这段代码。 这时需要用到预处理指令 #ifdef 和 #endif :#include <stdio.h>#define CONFIG_DEBUG int main(){ FILE *fp; fp=fo...原创 2018-05-29 11:19:33 · 60061 阅读 · 3 评论 -
n个整数组成最大多位整数
设有n个正整数(n≤100),将它们联接成一排,组成一个最大的多位整数。例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613Sample Input313 312 34347 13 4 2463321 32 33324 32 3Sample Output34331213742461333232...原创 2018-05-04 11:27:10 · 1678 阅读 · 0 评论 -
给定一个句子单词位置反转
给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”输入描述: 输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符) 输出描述: 对于每个测试示例,要求输出句子中单词反转后形成的句子 示例1 输入hello xiao mi 输出m...原创 2018-05-04 12:14:53 · 3464 阅读 · 0 评论 -
输入字符串和字符,去掉字符串中所有该字符
题目描述:输入字符串s和字符c,要求去掉s中所有的c字符,并输出结果。输入: 测试数据有多组,每组输入字符串s和字符c。输出: 对于每组输入,输出去除c字符后的结果。样例输入: heallo a样例输出: hello下面请看程序:#include<stdio.h>#include<string.h>int main(){ char c...原创 2018-05-04 12:32:23 · 2337 阅读 · 2 评论 -
读入一个字符串,输出其最长数字串
读入一个字符串str,输出字符串str中连续最长的数字串一个str,长度不超过255示例: 输入: abc123defg123456789hjfs123456 输出: 123456789程序如下:#include <stdio.h>#include <string.h>int main(){ int i,k,key,sum,max,le...原创 2018-05-04 12:50:36 · 1817 阅读 · 0 评论 -
给出一个字符串判断是否为回文
题目描述:给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的。输入:输入包括一行字符串,其长度不超过1000。输出:可能有多组测试数据,对于每组数据,如果是回文字符串则输出"Yes!”,否则输出"No!"。样例输入:hellollehhelloworld样例输出:Yes!No!下面请看程序:#include <stdio.h>#include <st...原创 2018-05-04 18:46:31 · 15102 阅读 · 6 评论 -
c语言实现香农编码
1、设计思想 为了设计的方便,我们需要在这个程序里设计一个结构体,以用来存储信源符号、信源符号概率等参数,将每一组参数看成一个结构体来看待,这样我们就可以随时地调用。2、设计流程 主函数部分,我们先接收要输入的信源符号个数,再接收每个信源符号的名称以及他的概率。 主函数设计好后,我们将各功能的函数分成几个模块来写,第一个是排序函数,如果你坚持从大到小输入则可以不用写;第二个...原创 2018-04-27 12:51:12 · 10607 阅读 · 10 评论 -
C语言中sizeof与strlen的区别
sizeof是求数据类型所占的空间大小,而strlen是求字符串的长度,区别还是挺大的下面直接来看代码:#include <stdio.h>#include <string.h>int main(){ char a[]="hello"; char *b="hello"; char c[100]="hello"; char d[]={'...原创 2018-05-13 22:03:29 · 211 阅读 · 0 评论 -
不用strcat函数自己编写一个链接函数
先看一下题目要求:我们先来复习一下strcat是怎么使用的:#include<stdio.h>#include<string.h>int main(){ char str1[100]; char str2[100]; while(scanf("%s%s",str1,str2)!=EOF) { strcat(str1,str2); ...原创 2018-05-21 12:42:35 · 2492 阅读 · 1 评论 -
C++中的构造函数和析构函数
构造函数c++是一种面向对象的编程语言,它要让程序员使用类对象就像使用标准类型一样。 比如要你写一个#include&amp;amp;lt;iostream&amp;amp;gt; using namespace std; class Clock{ public: Clock(int newH, int newM, int newS); void setTime(in...原创 2018-05-26 22:09:29 · 986 阅读 · 0 评论 -
C++异常处理机制
我们虽然可以使用abort函数、返回错误码等的方法来处理异常,但使用异常处理机制来捕获异常看起来更加有条理。下面介绍使用异常机制来处理错误,对异常处理分成3个部分: 1. 引发异常 2. 使用处理程序捕获异常 3. 使用try块我们来看一个简短的例子:#include &lt;iostream&gt;using namespace std;double ...原创 2018-07-19 12:01:04 · 1008 阅读 · 0 评论