IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言之长见识了(函数和一些不常见类型) -> 正文阅读

[C++知识库]C语言之长见识了(函数和一些不常见类型)

1. strstr

在字符串 haystack 中查找第一次出现字符串 needle 的位置, 没有返回NULL.

char *strstr(const char *haystack, const char *needle)
  • haystack – 要被检索的 C 字符串。
  • needle – 在 haystack 字符串内要搜索的小字符串。

2. gets

获取一个可以含空格的字符串. 成功返回str, 错误或为空则返回 NULL。

char *gets(char *str)
  • str – 这是指向一个字符数组的指针,该数组存储了 C 字符串。

代码:

#include <stdio.h>
#include <string.h>
int main()
{
    printf("输入字符串:\n");
    char str1[100];
    gets(str1);
    char str2[100];
    printf("输入子串:\n");
    gets(str2);

    if (strstr(str1, str2) != NULL)
    {
        printf(" %s 是 %s 子串\n", str2, str1);
    }
    else
    {
        printf(" %s 不是 %s 子串\n", str2, str1);
    }

    return 0;
}

运行结果:

在这里插入图片描述

在这里插入图片描述

3. strlen

size_t strlen(const char *str)
  • str – 要计算长度的字符串。

代码:

#include <stdio.h>
#include <string.h>

int main()
{
    printf("输入字符串:\n");
    char str1[100];
    gets(str1);

    int len = strlen(str1);
    if (len > 0) // 不空
    {
        printf("str1长度:%d\n", len);
        printf("str1 -> %s\n", str1);
    }
    else // 不空
    {
        puts("输入字符串为空.");
    }

    return 0;
}

运行结果:

在这里插入图片描述

在这里插入图片描述

4. \r\n

在Windows中:

‘\r’ 回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖;

‘\n’ 换行,换到当前位置的下一行,而不会回到行首;

5. const char * 与 char const *

C++标准规定,const关键字放在类型或变量名之前等价的。
so

const char* 等价于 char const*

6. size_t、ssize_t、unsigned char、uint8_t

6.1 size_t、ssize_t

size_t 类型表示C中任何对象所能达到的最大长度,它是无符号整数。

  • size_t在32位架构中定义为:typedef unsigned int size_t;

  • size_t在64位架构中被定义为:typedef unsigned long size_t;

  • size_t是无符号的,并且是平台无关的,表示0-MAXINT的范围;int为是有符号的;

ssize_t是有符号整型(signed size_t),在32位机器上等同与int,在64位机器上等同与 long int.

  • %d输出int型;%zu输出size_t型。size_t在库中定义为unsigned int。(一个是整型,一个是无符号整型。)
    unsigned (%u)表示无符号。 电脑是二进制存储,无符号就是没有正负号,所以存储的数据是没有符号位的。

补充:如果%zu不能使用,可以用%u取代。%zu不能输出负数。

#include <stdio.h>
#include <string.h>

int main()
{
    int num = 5;
    size_t len = sizeof(num);
    printf("size_t len = %zu\n", len);
    printf("size_t len = %u\n", len);

    return 0;
}

6.2 unsigned char

char 和 short / int / long 都是整型. unsigned char和char 都是一个字节长度(8bit), 它们唯一的不同就是unsigned char 没有最高位的符号位.

6.3 uint8_t / uint16_t / uint32_t / uint64_t

这都是使用typedef给类型起得别名。

1字节 uint8_t

2字节 uint16_t

4字节 uint32_t

8字节 uint64_t

7. memcpy

void *memcpy(void *str1, const void *str2, size_t n)
  • str1 – 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。
  • str2 – 指向要复制的数据源,类型强制转换为 void* 指针。
  • n – 要被复制的字节数。
#include <stdio.h>
#include <string.h>

int main()
{
    char *str = "0123456789";
    char str2[20];
    memcpy(str2, str, strlen(str) + 1);
    printf("str2 -> %s\r\n", str2);

    return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:33:07  更:2022-09-30 00:34:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 4:01:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码