- 博客(4)
- 收藏
- 关注
原创 memmove函数的自实现(c语言)
memmove()和memcpy()都是string.h头文件内的函数,它们都起着拷贝的作用,不同于strcpy(),这两个函数只关心字节数而不受"\0"的影响,同时可以对字符串以外的数组进行拷贝。而当内容有重叠时,如"abcd"和"abcd"两个重叠的字符串进行拷贝时,memcpy()函数能否发挥作用取决于编译器对库函数的完善,而memmove()不受编译器限制。因此,当发生重合时若src地址小于dest则采用从后向前的方式复制,反之则采用从前向后的方式复制,而没有重叠的情况采用从前向后和从后向前均可。
2023-12-27 15:47:54 356 1
原创 写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。(c语言)
可知当第三趟结束后得到了左旋一个的结果,我们据此分析,当左旋三个字符时ABCD旋转为BCDA为第一趟结束时字符串,可以看出当我们左旋字符串n个字符时我们需要重复的趟数为字符串的长度减1次。为达到题目要求,我们需要得到原字符串旋转后的结果与目标字符串进行比较,因此我们需要使用strcmp函数来判断字符串相等。首先我们对字符串的旋转做一个分析,以左旋为例,若将ABCD左旋一个字符则为DABC,以下图两两交换为一趟。此时我们将A换到了字符串的末尾,再进行两次上述过程如下图。
2023-12-22 17:47:54 425
原创 有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某个数字是否存在(c语言)
以上图3×3矩阵为例,矩阵的特殊值位于四个顶角,从3开始分析,当所选值k小于3时由于矩阵从上到下递增,故排除3所在的一列数据,得到左图;若k大于3,由于矩阵从左到右递增,故排除3所在一行,得到右图。重复上述过程,不断取右顶点来减少行或列缩小范围。
2023-12-21 23:42:28 490
原创 c语言分支循环总结
可以包含关键词、 运算符 、变量、 常量 以及表达式。(另外语句分为函数调用语句,控制语句和表达式语句。语句结束标志为句末分号,循环分支涉及语句绝大部分为控制语句)
2023-10-28 14:01:32 42 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人