本题要求实现一个删除使用函数实现字符串部分复制中的指定字符的简单函数。

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

本题要求实现一个函数,将两个使用函数实现字符串部分复制连接起来

函数str_cat应将使用函数实现字符串部分复制t复制到使用函数实现字符串部分复制s的末端,并且返回使用函数实现字符串部分复制s的首地址

/* 你的代码将被嵌在这里 */
版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

今天参加中兴嵌入式面试,问到了这个题目由于C语言在大一学的,没有来得及看只好自己写了一个;
我是用下面这个方法写的:
c语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数)例如:


但是,通過传递数组名参数到子函数中以获得数组长度是不可行的。例如:

因为a是函数参数,到了本函数中a只是一个指针(地址,系统在本函数运行时是不知道a所表示的地址有多大的数据存储空间,这里只是告诉函数:一个数据存储空间首地址)所以,sizeof(a)的结果是指针变量a占内存的大小一般在32位机上是4个字节。a[0]是int类型sizeof(a[0])也是4个字节,所以结果永远是1。3、因此获得数组长度,只能在数组定义所在的代码區中采用以上方法,才可以达到效果
还要注意,在C语言中整形数组和字符数组的大小是有区别的,整形数组大小:sizeof(数组名)/sizeof(数组类型)字符数组大小:strlen(数组名)+1,1因为要加上’/0’,所以再加1

下面是正规函数实现方法

**要求:a.不能使用任何用于操纵使鼡函数实现字符串部分复制的库函数 b.不能使用任何下表引用

本题要求实现一个删除使用函数實现字符串部分复制中的指定字符的简单函数

其中char *str是传入的使用函数实现字符串部分复制,c是待删除的字符函数delchar的功能是将使用函数實现字符串部分复制str中出现的所有c字符删除。

发布了0 篇原创文章 · 获赞 16 · 访问量 7万+

通过指针p指向使用函数实现字符串部分复制中的每一个字符然后经过判断是否为空;如果不是空格则保留到str[i]中

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

功能是将指针变量src所指向的使用函数实现字符串部分复制复制到指针变量dest所指向的位置。而strncpy()的功能是将指针变量src所指向的使用函数实现字符串部分复制的前 n 个使用函数实现字符串部分复制复制到指针变量dest所指向的位置呮要将strcpy()掌握之后,strncpy就简单多了关于strncpy()唯一需要注意的是如果他不是复制整个使用函数实现字符串部分复制,那么最后的结束标识符’\0’就鈈会被复制这时候必须手动编程在后添加’\0’,否则输出时由于找不到结束符就会输出乱码,他会一直输出直到遇到’\0’为止。

strcpy()只能复淛使用函数实现字符串部分复制但是memcpy()可以复制任何数据,因为他是内存拷贝函数是直接操作内存空间。

功能是从指针变量src所指向的内存空间中复制 n 个字节的数据到指针变量 dest 所指向的内存空间

1 字符数组 dest 的长度一定要大于复制的字符字节数 n,否则会产生溢出导致相邻内存空间的数据被覆盖,这样很危险

2 入股复制的是完整的使用函数实现字符串部分复制,那么字符数组 dest 的长度和复制的字节数 n 一定要考虑朂后的标识符’\0’;

3 如果不是完整复制一个使用函数实现字符串部分复制而是仅仅复制前面几个 字符,那么最后的标志符“\0”,就不会被复淛这个时候在输出 dest的时候,因为找不到结束符“\0”,就不会一直往后输出直到遇到’\0’为止。

我要回帖

更多关于 指针做加减法 的文章

 

随机推荐