专业建站网网站运营推广,做推广网站的去哪能买到有效资料,建什么类型个人网站比较好,dede网站不能访问一#xff0c;函数库C从C语言演变而来。在C程序中可以使用C语言的函数库。 如果要用函数库中的函数#xff0c;就必须在程序文件中包含有关的头文件。 在C中使用这些 头文件有两种方法。
1、用C语言的传统方法 #includestdio.h #includemath.h
2、用C的…一函数库C从C语言演变而来。在C程序中可以使用C语言的函数库。 如果要用函数库中的函数就必须在程序文件中包含有关的头文件。 在C中使用这些 头文件有两种方法。
1、用C语言的传统方法 #includestdio.h #includemath.h
2、用C的新方法 C标准要求系统提供的头文件不包括后缀.h例如iostream、string。 为了表示与C 语言的头文件有联系又有区别C所用的头文件名是在C语言的相应的头文件名之前加一字母c。因为标准库非常的庞大所以程序员在选择的类的名称或函数名时就很有可能和标准库中的某个名字相同。 为了避免名字冲突,98年以后的c语言提供一个全局的命名空间namespace就把标准库中的一切都被放在名字空间std中因此在程序中要对命名空间std作声明。目前所用的大多数C编译系统既保留了c的用法又提供了C的新方法。下面两种用法等价可以任选。提倡使用C的新方法。
二namespace命名空间使用基本io的时候要加入标准命名空间using namespace std;
(1) namespace是指标识符的各种可见范围
(2) 命名空间用关键字namespace 来定义
(3) C标准程序库中的所有标识符都被定义于一个名为std的namespace中在C中名称name可以是 符号常量、变量、宏、函数、结构、枚举、类和对象。为了避免在大规模程序的设计中以及在程序员使用各种各样的C库时这些标识符的命名发生冲突标准C引入了关键字namespacenamespace一般被译为命名空间/名字空间/名称空间/名域命名空间namespace是一种描述逻辑分组的机制可以将按某些标准在逻辑上属于同一个集团的声明放在同一个命名空间中。命名空间可以是全局的也可以位于另一个命名空间之中但是不能位于类和代码块中。与命名空间相关的概念有声明域declaration region 声明标识符的区域。如在函数外面声明的全局变量它的声明域为声明所在的文件。在函数内声明的局部变量它的声明域为声明所在的代码块例如整个函数体或者整个复合语句。潜在作用域potential scope从声明点开始到声明域的末尾的区域。因为 C 采用的是先声明后使用的原则所以在声明点之前的声明域中标识符是不能用的。即标识符的潜在作用域一般会小于其声明域。作用域scope标识符对程序可见的范围。标识符在其潜在作用域内并非在任何地方都是可见的。例如局部变量可以屏蔽全局变量嵌套层次中的内层变量可以屏蔽外层变量从而被屏蔽的全局或外层变量在其屏蔽的区域内是不可见的。所以一个标识符的作用域可能小于其潜在作用域。定义 一般自定义格式如下namespace xxx
{//作用域
} 注意命名空间不能单独在函数内部定义
命名空间要在调用位置之前声明
命名空间可以分段定义同一命名空间可以合并三C智能字符串stringC的string类型是对C语言的字符串的极大提升string类型是智能对象能自动分配所需的内存空间并且提供针对字符串的几乎所有操作。所需要的头文件string C语言 -- cstring/string.h
所需声明的名字空间using std::string;比起C风格字符串来特有的操作有自动分配字符串内存空间双向遍历字符串迭代器清空字符串内容累加、追加、插入、交换等操作C string类的常用操作1、string初始化、赋值 2、str.c_str()、string 与 char*的转换 3、string的输入 4、capacity 5、size、length 6、max_size 7、clear 8、empty 9、erase 12、find 10、substr 11、swap 13、replace 14、字符串连接 15、字符串比较示例代码
#include iostream
#include string
using namespace std;int main() {// 1. string 初始化、赋值string s1 Hello; // 初始化string s2; s2 World; // 赋值cout 1. s1 s1 , s2 s2 endl;// 2. str.c_str()、string 与 char* 的转换const char* cstr s1.c_str(); // 转换为 const char*cout 2. c_str() cstr endl;// 3. string 的输入string s3;cout 3. 请输入一个字符串: ;cin s3; // 输入时遇到空格会结束cout 你输入的是: s3 endl;// 4. capacity 容量cout 4. s1.capacity() s1.capacity() endl;// 5. size、lengthcout 5. s1.size() s1.size() , s1.length() s1.length() endl;// 6. max_sizecout 6. s1.max_size() s1.max_size() endl;// 7. clears2.clear();cout 7. 清空 s2 后: \ s2 \, size s2.size() endl;// 8. emptycout 8. s2.empty() (s2.empty() ? true : false) endl;// 9. erasestring s4 abcdefg;s4.erase(2, 3); // 从下标 2 开始删除 3 个字符cout 9. erase 后 s4 s4 endl;// 10. substrstring s5 HelloC;cout 10. substr(5, 3) s5.substr(5, 3) endl;// 11. swapstring a AAA, b BBB;a.swap(b);cout 11. swap 后 a a , b b endl;// 12. findstring text I love programming in C;size_t pos text.find(programming);if (pos ! string::npos)cout 12. find \programming\ 成功位置 pos endl;// 13. replacestring s6 I like Java;s6.replace(7, 4, C); // 从下标 7 开始替换 4 个字符为 Ccout 13. replace 后 s6 s6 endl;// 14. 字符串连接string s7 Hello, s8 C;string s9 s7 s8;cout 14. 字符串连接: s9 endl;// 15. 字符串比较string x abc, y abd;cout 15. 比较 \abc\ 和 \abd\: ;if (x y) cout 相等 endl;else if (x y) cout abc abd endl;else cout abc abd endl;return 0;
}
运行结果
四C之struct1.C语言中struct和C中struct的区别1C 语言中的 struct只能包含数据成员变量不能包含函数。struct 定义后变量声明时必须加上关键字 struct。成员默认的访问权限是 public公共但实际上 C 没有访问权限控制的概念。不支持继承和多态。初始化时一般用大括号整体赋值成员访问用 . 或 -。示例代码
#include stdio.hstruct Point {int x;int y;
};int main() {struct Point p1 {10, 20}; // 必须写 structprintf(x%d, y%d\n, p1.x, p1.y);return 0;
}
2C 中的 struct在 C 中struct 和 class 非常相似区别是1.默认访问权限struct 的成员默认是 publicclass 默认是 private。
2.C中结构体的默认继承方式是publicC中类的默认继承方式是private除此之外C 的 struct 能做的事和 class 基本相同可以包含 数据成员 成员函数。可以有 构造函数 / 析构函数。可以有 静态成员。可以有 继承、多态、访问控制public/private/protected。示例代码
#include iostream
using namespace std;struct Point {int x, y;// 构造函数Point(int a, int b) : x(a), y(b) {}// 成员函数void print() {cout x x , y y endl;}
};int main() {Point p1(10, 20); // 直接用构造函数p1.print();return 0;
}
小结在 C语言 中struct 仅仅是“数据的集合”。在 C 中struct 已经是一个轻量的“类”几乎具备和 class 一样的功能。