如何封装C语言的字符串相关功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何封装C语言的字符串相关功能相关的知识,希望对你有一定的参考价值。

C语言是没有类的,因此,没有封装的概念,估计你说的是C++,对于C++,一般封装字符串相关功能可以按下列内容和步骤,但不限于下列内容:
(1)先定义1个数据结构可以用来表达一个字符串实体,如一个字符串指针,一定长度的字符数组(适合长度限制在某个值的情况),或由一个指针及长度组成的结构或更复杂的数据链表等。
(2)基于上面的数据结构定义1个封装类,这个类需要定义1些不同参数的构建函数,可以满足不同类型数据初值的初始化,如:初值是个字符串、初值是个整数、初值是个浮点数等;
(3)定义和实现这个类的操作符和比较符,一般字符串的操作符至少包括 +(2个字符连接成一个新串),+=(2个字符串连接后,赋予符号左边的实体),=(复制),比较符可以是全部如:>、>=,<,<=,==,!=。
(4)定义这个类的类型转换符,一般至少包括double,int
(5)定义这个类的一些常用函数,如左右截取,取长度,查找子串等。

具体你可以参考ATL 或C++ 中标准string类的定义。

如果你确定问的是C语言,那么不支持功能封装。
参考技术A 如何封装,c字符串的相关功能 strcpy strcat、 strlen strstr strcmp strncpy 自己实现其实还是不难的,多动手敲代码,不懂的话 百度、谷歌、问人 参考技术B C语言是没有类的,因此,没有封装的概念,估计你说的是C++,对于C++,一般封装字符串相关功能可以按下列内容和步骤,但不限于下列内容:
1、先定义1个数据结构可以用来表达一个字符串实体,如一个字符串指针,一定长度的字符数组(适合长度限制在某个值的情况),或由一个指针及长度组成的结构或更复杂的数据链表等。
2、基于上面的数据结构定义1个封装类,这个类需要定义1些不同参数的构建函数,可以满足不同类型数据初值的初始化,如:初值是个字符串、初值是个整数、初值是个浮点数等;
3、定义和实现这个类的操作符和比较符,一般字符串的操作符至少包括 +(2个字符连接成一个新串),+=(2个字符串连接后,赋予符号左边的实体),=(复制),比较符可以是全部如:>、>=,<,<=,==,!=。
4、定义这个类的类型转换符,一般至少包括double,int
5、定义这个类的一些常用函数,如左右截取,取长度,查找子串等。
具体可以参考ATL 或C++ 中标准string类的定义。

C#与C互传数据

C#程序与C程序互传数据?
最好有实例!

可以,发消息,命名管道都行,研究一下内NamedPipeClientStream NamedPipeServerStream,c#里这是管道相关的类。。。
C语言就去研究一下namepipe内核对象的用法和相关API函数,C#只是把命名管道内核对象的相关API操作封装成类了,其实是同一个东西,C因为没有相关封装那只能用windows API来写。。。
C语言写的程序创建一个管道,c#的用namedpipeclientstream去连接,或者反过来C#做管道创建者,C去连接。。。
参考技术A 你要是说两个独立程序的话可以用各种ipc机制, 比如pipe
你要是说C#调用c写的dll之类的话可以用pinvoke

以上是关于如何封装C语言的字符串相关功能的主要内容,如果未能解决你的问题,请参考以下文章

C语言里面输入命令的头文件是啥啊

C语言中:strcmp函数如何使用?

C语言_相关函数与结构体

类与正则相关

WebRTC Native M96 基础Base模块介绍之字符串处理相关的封装

WebRTC Native M96 基础Base模块介绍之字符串处理相关的封装