第三章 extern “C“ 与std, 字符串操作

第三章 extern "C" 与std, 字符串操作

前言 C++  学习路线,本人主要也是为了记录一下自己的学习过程

目录

第三章 extern "C" 与std, 字符串操作

一、 extern "C"

二、std

三、 字符串操作


一、 extern "C"

1 如果需要在C++中调用C实现的库中的方法

 需extern "C" //指示编译器这部分代码使用C的方式进行编译而不是C++

#ifdef __cplusplus
extern "C"{
#endif
void func(int x,int y);
#ifdef __cplusplus    
}
#endif

二、std

std是一个c++的标准库

在使用cout需要using namesapce std;相当于java导包

cout,endl C++提供了 标准输出流 

可以看到endl实际是名字空间std中的一个全局内联函数(记住std::endl是一个函数),它做了两件事:

1) 输出一个换行符(为何要输出一个换行符,如果不输出会怎么样?);

2) 调用flush

using namespace std;
char *name = "D";
int time = 8;
cout << "D:" << time << "点," << "一天天"<< endl;

三、 字符串操作


> C字符串实际上是使用 NULL字符 `'\0' `终止的一维字符数组。

```c
//字符数组 = 字符串
char str1[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
//自动加入\0
char str2[] = "Hello";
```

#### 字符串操作

| 函数            | 描述                                                         |
| --------------- | ------------------------------------------------------------ |
| strcpy(s1, s2); | 复制字符串 s2 到字符串 s1。                                  |
| strcat(s1, s2); | 连接字符串 s2 到字符串 s1 的末尾。                           |
| strlen(s1);     | 返回字符串 s1 的长度。                                       |
| strcmp(s1, s2); | 如果 s1 和 s2 相同,则返回 0;如果 s1 &lt; s2 则返回小于0;如果 s1&gt;s2 则返回大于0 |
| strchr(s1, ch); | 返回指向字符串 s1 中字符 ch 的第一次出现的位置的指针。       |
| strstr(s1, s2); | 返回指向字符串 s1 中字符串 s2 的第一次出现的位置的指针。     |

> 说明:strcmp:两个字符串自左向右逐个字符相比(按ASCII值大小相比较) 

#### C++ string类

>C++ 标准库提供了 **string** 类类型,支持上述所有的操作,另外还增加了其他更多的功能。 

```c++
#include <string>
//string 定义在 std命令空间中
usning namespace std;
string str1 = "Hello";
string str2 = "World";

    
// str1拼接str2 组合新的string
string str5 = str1 + str2;
// 在str1后拼接str2 str1改变
str1.append(str2);
//获得c 风格字符串
const char *s1 = str1.c_str();
//字符串长度
str1.size();
//长度是否为0
str1.empty();

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值