c++基础总结

//用户自定义的有返回值的函数
#include <iostream>
int stonetoble(int sts);  //函数原型


int main()
{
using namespace std;

int stone;
cout << "Enter the weight in stone:";
cin >> stone;

int pounds = stonetoble(stone);

cout << stone << "stone = ";
cout << pounds << "pounds." << endl;

return 0;
}




int stonetoble(int sts)   //函数定义
{
return 14 * sts;


}




#include <iostream>
int main()
{
using namespace std;
const int ArSize = 20;  //定义一个常量
char name[ArSize];      //定义一个数组
char dessert[ArSize];   //定义一个数组

cout << " Enter you name:\n";
cin.get(name,ArSize).get();

cout << "Enter your favorite dessert:\n";
cin.get(dessert,ArSize).get();

cout << "I have some delicious " << dessert;
cout << " for you ," << name << ".\n";

return 0;


}




size() :表示获取字符串长度
strlen() : 表示获取字符串的长度
getline(数组名name,数组大小) : 读取到数组中的数据  里面有两个参数,第一个参数是定义数组的名称,第二个参数是定义数组的大小


定义结构  定义类
定义结构对象   定义类对象
inflatable hat;   stuFrom stu;
定义结构语法:  struct inflatable
{
char  name[20];
float volume;
double price;
   ……
};
===> 访问类成员函数(如:cin.getline())的方式是从访问结构成员变量(如:hat.price)的方式衍生而来的




定义共用体语法:
              union stonetobles
 {
……
 };


作用:共用体是一种数据格式,它能够存储不同的数据类型,但只能同时存储其中的一种类型。
      如: 假设管理一个小商品目录,其中有一些商品的ID为整数,而另外一些商品的ID为
 字符串,在这种情况下,可以这样做。
//定义一个结构
struct wight
{
char brand[20];
int type;
//定义一个共同体  id有不同的类型
union id
{
long id_num;
long id_char[20];
}id_val;

};

int main()
{
wight = prize;
if(prize.type == 1)
{
cout << prize.id_val.id_num << endl;
}
else
{
cout << prize.id_val.id_char << endl;
}
}


计算机存储数据必须的三种基本属性: 1.信息存储在何处  2.存储的值为都少  3.存储的信息是什么


指针: 指针是一个变量,它存储的值是地址,而不是值本身。


常规变量的地址获取方式: 只需要对变量 应用地址运算符(&),就可以获得它的位置。
         例子: string home;   home是一个变量,则&home是它的地址。
 
指针: 一种特殊类型的变量,用于存储值的地址。
因此,指针名表示的是地址。
*运算符被称为 间接值 或 解引用运算符,将其应用于指针,可以得到该地址处存储的值
如: int * manly;
则manly表示的是一个地址,而*manly表示存储在该地址处的值。
注意: 一定要在对指针应用解除引用运算符(*)之前,将指针初始化为一个确定的、适当的地址。

创建->为数组分配内存的通用格式:
 
vector<int> vi; //vi是一个vector<int> 对象


getline(); ---> 读取一行字符  可以结合使用cin和eof()、fail()方法来判断输入是否成功
getline(cin,str); ---> 将一行输入读取到string类对象中使用的是getline(cin,str)


strlen() --->  返回字符串的长度,其中不包括空字符串
strcpy() --->  将字符串从一个位置赋值到另一个位置
strcat() --->  将字符串附加到尾部
size()   --->  获得字符串中的字符数
strcmp() --->  字符串比较


ctype库函数:  #include <cctype>
isalnum() ---> 如果参数是字母数字,即字母或数字,该函数返回true
isalpha() ---> 来检查字符是否为字母字符
iscntrl() ---> 如果参数是控制字符,该函数返回true
isdigit() ---> 来测试字符是否为数子字符。参数是数字(0~9),该函数返回true
isgraph() ---> 如果参数是除空格之外的打印字符,该函数返回true
islower() ---> 如果参数是小写字母,该函数返回true
isupper() ---> 如果参数是大写字母,该函数返回true
isprint() ---> 如果参数是打印字符(包括空格),该函数返回true
isspace() ---> 来测试字符是否为空白。 如 换行符、空格、制表符
ispunct() ---> 来测试字符是否为标点符号
isxdigit()---> 如果参数十六进制数字,即0~9,a~f或A~F,该函数返回true
tolower() ---> 如果参数是大写字符,则返回其小写,否则返回该参数
toupper() ---> 如果参数是小写字符,则返回其大写,否则返回该参数


sting函数库:#include<string>
成员函数:
(constructor) 构建字符串对象 (构造函数成员)
operator= 字符串赋值 (公有成员函数)
 
迭代器:
begin 返回指向字符串开始处的迭代器
end 返回指向字符串结束处之后的迭代器
rbegin 返回指向反向开始处的反向迭代器,即:指向结束处的迭代器
rend 返回指向反向结束处的反向迭代器,即:指向开始处之前的迭代器

容器:
size 返回字符串长度
length 返回字符串长度
max_size 返回字符串的最大长度
resize 改变字符串大小,即:多去少补
capacity 返回分配存储空间大小
reserve 请求改变存储空间大小
clear 清空字符串
empty 测试字符串是否为空


访问元素:
operator[] 得到字符串中的字符
at 得到字符串中的字符

修改:
operator+= 追加
append 追加
push_back 追加字符到字符串
assign 赋值
insert 插入
erase 从字符串中擦除一些字符
replace 替换部分或全部字符
swap 与另一字符串交换内容

字符串:
c_str 得到等效的字符数组
data 得到等效的字符串数据
get_allocator 得到分配器
copy 从字符串中复制字符序列
find 查找字符
rfind 从后向前查找字符
find_first_of 查找某个字符第一次出现的位置
find_last_of 查找某个字符最后一次出现的位置
find_first_not_of Find absence of character in string 注:英文原意比较准确
find_last_not_of Find absence of character in string from the end
substr 生成子字符串
compare 比较




字符串比较: 应使用c风格字符串库中的strcmp()函数来比较。
语法: strcmp(数组名,想要查找的字符串);
如:  char word[6] "?ate";
for(char ch = 'a'; strcmp(word,"mate") ; ch++)
{
cout << word << endl;
word[0] = ch;
}


for循环和while循环使用:
for循环允许将所有相关信息 ---> 初始值、终止值和更新计数器的方法 ---> 放在同一个地方
如: for(int i =0; int <= 100; i++)
初始值     终止值     更新计数器
注:
  在设计循环时,请记住下面几条指导原则:
1. 指定循环终止条件
2. 在首次测试之前初始化条件
3. 在条件被再次测试之前更新条件

无法预先知道某个循环将执行的次数时。 ---> 使用while循环


c++两种方式创建类型别名:
1.预处理器  #define BYTE char
 编译器将在编译程序时用char替换所有的BYTE。
 BYTE作为char的别名
 
2.关键字typedef   typedef char byte;
byte作为char的别名

注: typedef不会创建一个新类型,而只是为已有的类型创建一个新名称
     如: 如果将word作为int的别名,则cout将把word类型的值视为int类型。

cin.get(char); //读取每个字符(包括空格)


使用c++读取文件:  EOF
在使用C/C++读文件的时候,一定都使用过eof()这个函数来判断文件是否为空或者是否读到文件结尾了


总结: 1.cin >> ch;
这样将忽略空格、换行符和制表符
 2. ch = cin.get(); //调用成员函数cin.get()
返回下一个输入字符 ----> 包括空格、换行符、制表符
 3.cin.get(char)  读取所有的字符,包括空格、换行符。
    a: cin.get(char):成员函数通过返回转换为false的bool值来指出已到达EOF。
b: cin.get():成员函数调用则通过返回EOF值来指出已到达EOF,EOF是在文件iostream中定义的。
    
 




int a[10];  a表示地址,首元素地址
int 占4个字节
数组名表示首地址,数组下标表示偏移量、偏移多少个元素,偏移多少个字节看数组的类型


c语言32个关键字 --->  没有你不知道的,只有你不会用的。


二维数组: int maxtemps [4] [5];  //表示4行5列


逻辑NOT运算符:!
   !运算符将它后面的表达式的真值取反。
   如: if(!(x > 5))    //if( x <= 5)


3元运算符 ?:  a>b?a:b;


continue  跳出循环体剩余的部分,开始新一轮循环
break     跳过循环的剩余部分,到达下一条语句


ofstream: 读取文件   于特顶定的文件关联起来
需要将ofstream对象与文件关联起来,为此,方法之一是使用open()方法。
使用完文件后,应使用方法close()将其关闭


注: 使用ofstream读取文件时,首先应该声明自己的ofstream对象,为其命名,并将其同文件关联起来。

如: ofstream outFile;
ofstream fout;
 
outFile.open("fish.txt");  //新建一个名为fish.txt文件
char filename[50];
cin >> filename;
fout.open(filename);


声明一个ofstream对象并将其同文件关联起来:
使用文件输出的主要步骤:
1.包含头文件fstream。
2.创建一个ofstream对象。
3.将该ofstream对象同一个文件关联起来。
4.就像使用cout那样使用该ofstream对象。


        setf()和precision() ---> 格式化方法


open()注意: 打开已有的文件,以接受输出时,默认将它其长度截短为0,因此原来的文件内容丢失。


查看文件是否被打开:
ifstream inFile;
inFile.open("test.txt");
//判断文件是否打开成功
if(!inFile.is_open())
{
exit(EXIT_FAILURE);
}
 
is_open() ---> 检查文件是否被成功打开的首先方法是使用方法 "is_open()" 
exit() ---> 终止程序 #include <cstdlib>

srand(time(NULL)) ---> 利用时间设置随机数种子产生随机数
s


函数原型: 1.编译器正确处理函数的返回值
 2.编译器检查使用的参数数目是否正确
 3.编译器检查使用的参数类型是否正确

形参和实参: 1.形参 ---> 用于接收传递值的变量被称为形参
2.实参 ---> 传递给函数的值称为实参


指针和数组:     记住两个恒等式
1.  arr[i] == *(ar + i)  //在两个符号中的值

2.  &arr[i] == ar + i //在两个符号中的地址

待续……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值