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语言的字符操作

一、前言

字符操作 , 是我们写程序时 , 最常用的一种操作 , 例如:字符串截取 , 字符串替换 , 字符串转整数类型等等 , 都是字符操作 , 在java中String类就是二三十个方法 , 还有StringBuffer ,StringBuilder等辅助类 。 下面 ,我们就来看看C语言中字符处理的函数 。


二、字符操作讲解

1. 字符数组

// 字符数组
void charArray() {

    // 字符数组 , 可以修改
    char c[15] = { 'y','e','s',' ','m','a','n' };
    // 字符数组可以直接作为字符串输出
    printf("%s\n", c);

    // 修改
    c[0] = 'a';

    printf("修改字符:%s\n", c);

}

字符数组 , 本身是一个数组 , 但是也可以作为字符串格式化输出 , 可以任意替换里面的字符 , 和操作数组是一样的 。


2. 字符指针

/*字符指针*/
void charPointer() {
    // 内存连续排列 , 不可修改
    char* s = "Never give up";

    printf("内存地址:%#x\n", s);

    printf("-------------------------------\n截取字符\n");
    // 截取字符
    s += 6;
    while (*s)
    {
        printf("%c", *s);
        s++;
    }
}

字符指针与字符数组 , 最大的区别是一个定义了就不可以修改 , 一个可以任意修改里面的字符 , 就和String和StringBuilder一样 , String定义了就无法增加或修改里面的内容 , 一个是可以增加和修改里面的内容 。


3. 拼接字符串

/*拼接函数*/
void spliceString() {
    // 合并后存储字符的容器
    char dest[40] = {'h','e','h','e',' '};

    char* c1 = "Never give up ";

    char* c2 = "I blive you ! ";

    // 会清除字符数组原有的数据
    //strcpy(dest, c1);
    strcat(dest, c1);
    strcat(dest, c2);

    printf("\n拼接字符串:\n%s\n", dest);

}

4. 字符转换

/*字符转换int*/
void strToInt() {
    char* p = "123";
    int toInt = atoi(p);
    int res = toInt + 123;
    printf("字符转换int数值: %d\n", res);
}

5. 查找单个字符


/*查找单个字符*/
void searchChar() {
    char* str = "I wanna dont kiss you";
    char* p = strchr(str, 'd');
    
    if (p) {
        printf("索引位置:%d\n", p - str);
        printf("打印: ");
        str += p - str;
        while (*str)
        {
            printf("%c",*str);
            str++;
        }
        printf("\n");
    }
    else {
        printf("没有找到\n");
    }
}

6. 查找字符串

/*查找字符串*/
void sreachChars() {
    char* str = "落花有意流水无情";
    char* handle = "流";

    char* p = strstr(str, handle);

    if (*p) {
        printf("索引位置:%d\n", p - str);
        printf("打印: ");
        str += p - str;
        printf("%s ---- %s\n", str,p);
    }
    else {
        printf("没找到\n");
    }
}

7. 字符转换

/*字符转换int*/
void strToInt() {
    char* p = "123";
    int toInt = atoi(p);
    int res = toInt + 123;
    printf("字符转换int数值: %d\n", res);
}

8. 字符转换函数定义

/-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
//
// Narrow String to Number Conversions
//
//-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
_Check_return_                    _ACRTIMP double    __cdecl atof   (_In_z_ char const* _String);
_Check_return_ _CRT_JIT_INTRINSIC _ACRTIMP int       __cdecl atoi   (_In_z_ char const* _String);
_Check_return_                    _ACRTIMP long      __cdecl atol   (_In_z_ char const* _String);
_Check_return_                    _ACRTIMP long long __cdecl atoll  (_In_z_ char const* _String);
_Check_return_                    _ACRTIMP __int64   __cdecl _atoi64(_In_z_ char const* _String);

_Check_return_ _ACRTIMP double    __cdecl _atof_l  (_In_z_ char const* _String, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP int       __cdecl _atoi_l  (_In_z_ char const* _String, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP long      __cdecl _atol_l  (_In_z_ char const* _String, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP long long __cdecl _atoll_l (_In_z_ char const* _String, _In_opt_ _locale_t _Locale);
_Check_return_ _ACRTIMP __int64   __cdecl _atoi64_l(_In_z_ char const* _String, _In_opt_ _locale_t _Locale);

_Check_return_ _ACRTIMP int __cdecl _atoflt (_Out_ _CRT_FLOAT*  _Result, _In_z_ char const* _String);
_Check_return_ _ACRTIMP int __cdecl _atodbl (_Out_ _CRT_DOUBLE* _Result, _In_z_ char*       _String);
_

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-22 10:47:24  更:2021-10-22 10:47:35 
 
开发: 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年11日历 -2024/11/24 3:17:36-

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