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中有哪些字符处理函数?

????????周末闲来无事,随便写点东西。这篇博客用来总结 C 中的一些常用的字符、数据处理函数。

目录

1、字符串常用操作:连接、拷贝、比较 与 获取长度

2、mem_类的函数(查找、比较、拷贝 与 赋值)

2、寻找字符串子串

3、字符串转数字

4、数字转字符串?

5、分隔符分割字符串

6、大小写字母判别与转换


1、字符串常用操作:连接、拷贝、比较 与 获取长度

include <string.h>
/*
    将字符串 str2 连接到 str1 的末端,并返回指针 str1
*/
char *strcat( char *str1, const char *str2 )


/*
    将字符串 str2 中至多count个字符连接到字符串 str1 中,并追加空值结束符。
    返回处理完成的字符串。
*/
char *strncat( char *str1, const char *str2, size_t count );


/*
    返回一个指向 str 中 ch 首次出现的位置指针,
    当没有在 str 中找到 ch 则返回NULL。
*/
char *strchr( const char *str, int ch )
/*
    函数返回一个指针,它指向字符 ch 在字符串 str 末次出现的位置,
    如果匹配失败,返回 NULL。
*/
char *strrchr( const char *str, int ch );


/*
    比较字符串 str1 与 str2。如果两个字符串相等则返回 0;
    该函数的将两个字符串按位进行比较(字符的Ascall值),
    当遇到不相等位时返回结果。
*/
int strcmp( const char *str1, const char *str2 )
/*
    比较字符串 str1 和 str2 中至多 count 个字符。
*/
int strncmp( const char *str1, const char *str2, size_t count );


/*
    将字符串 src 中所有字符赋值到字符串 dst,包括空值结束符。
    返回值为指针dst。
*/
char *strcpy( char *dst, const char *src)
/*
    将字符串 src 中至多 count 个字符复制到字符串 dst 中。
    如果字符串 src 的长度小于count,其余部分用 '\0' 填补。
    返回处理完成的字符串。
*/
char *strncpy( char *dst, const char *src, size_t count );

/*
    函数返回字符串 str 的长度( 即空值结束符之前字符数目)。
*/
size_t strlen( char *str )

2、mem_类的函数(查找、比较、拷贝 与 赋值)

? ? ? ? ?mem_类的函数与str_的函数使用起来的最大区别在于,mem_类函数不限制数据类型,直接在内存上进行操作,使用起来更强大与灵活。

#include <string.h>
/*
    函数在 buffer 指向的数组的 count 个字符的字符串里查找ch 首次出现的位置。
    返回一个指针,指向 ch 在字符串中首次出现的位置, 
    如果ch 没有在字符串中找到,返回 NULL。
*/
void *memchr( const void *buffer, int ch, size_t count );

/*
    函数比较 buffer1 和 buffer2 的前 count 个字符。
*/
int memcmp( const void *buffer1, const void *buffer2, size_t count );

/*
    函数从from中复制count 个字符到to中,并返回to指针。 
    如果 src和 dst 指向的内存空间有重叠,函数行为不确定。
*/
void *memcpy( void *dst, const void *src, size_t count );

/*
    函数拷贝 ch 到 buffer 从头开始的 count 个字符里, 并返回buffer指针。
     memset() 可以应用在将一段内存初始化为某个值。
*/
void *memset( void *buffer, int ch, size_t count );

2、寻找字符串子串

/*
    函数返回一个指针,它指向字符串 str2 首次出现于字符串 str1 中的位置,
    如果没有找到,返回 NULL。
*/
char *strstr( const char *str1, const char *str2 )

?????????示例

#include <stdio.h>
#include <string.h>
int main(void)
{
	char strA[20] = "hello world!", strB[20] = "world";
	char *tmp = strstr(strA, strB); 
	// (world!)
	printf("(%s)\n", tmp);
	return 0;
} 

3、字符串转数字

#include <stdlib.h>
/*
    将字符串 str 表示浮点数(带符号)转换为 double 类型,
    end 指针如果不为空则用于接收 str 去掉浮点数字符串后剩下的字符串。
*/
double strtod( const char *str, char **end )

/*
    字符串转长整形,base代表采用的进制
    如果返回值无法用长整型表示,函数则返回LONG_MAX或LONG_MIN. 
    错误发生时,返回零。
*/
long strtol( const char *str, char **end, int base )

/*
    字符串转无符号长整形数
*/
unsigned long strtoul( const char *str, char **end, int base )

/*
    将字符串str转换成一个双精度数值并返回结果。 
    参数str 必须以有效数字开头
    允许以“E”或“e”除外的任意非数字字符结尾。
*/
double atof( const char *str )

/*
    将字符串str转换成一个整数并返回结果。
    参数str 以数字开头,
    当函数从str 中读到非数字字符则结束转换并将结果返回。
*/
double atoi( const char *str )

/*
    将字符串转换成长整型数并返回结果。
    函数会扫描参数str字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,
    而再遇到非数字或字符串结束时才结束转换,并将结果返回。
*/
double atol( const char *str )

4、数字转字符串?

/*
    把输出发送到 buffer (缓冲区)中.返回值是写入的字符数量.
*/
int sprintf( char *buffer, const char *format, ... )

? ? ? ? 示例?

#include <stdio.h>
int main(void)
{
	int num = 199;
	char str[20] = "";
	sprintf(str, "%d", num);
	// (199)
	printf("(%s)\n", str); 
	return 0;
} 

5、分隔符分割字符串

char *strtok( char *str1, const char *str2 )

? ? ? ? 示例?

#include <stdio.h>
#include <string.h>
int main(void)
{
	char str[20] = "ABC|EDF|GH";
	char tmp[] = "|", *res = NULL;
	res = strtok(str, tmp);
	// (ABC) (EDF) (GH)
	while(res != NULL)
	{
		printf("(%s) ", res);
		res = strtok(NULL, tmp);
	}
	return 0;
} 

6、大小写字母判别与转换

#include <ctype.h>
// 是否是数字字符
int isdigit( int ch )
// 是否是字母字符
int isalpha( int ch )
// 是否是小写字母
int islower( int ch )
// 转小写字母
int tolower( int ch )
// 是否是大写字母
int isupper( int ch );
// 转大写字母
int toupper( int ch )
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-15 22:13:21  更:2022-03-15 22:17:52 
 
开发: 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 2:44:04-

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