不调用库函数的情况下实现一个strcpy函数。
void my_strcpy(char* dest, const char* src) {
int i = 0;
while (src[i] != '\0') {
dest[i] = src[i];
i++;
}
dest[i] = '\0'; // 添加字符串结束的空字符
}
/*
* @Author: [email protected]
* @Date: 2024-10-24
* @LastEditors: None
* @LastEditTime: None
* @FilePath: 实现二分搜索算法.c
* @Description:
*
* Copyright (c) 2024 by [email protected], All Rights Reserved.
*/
#include <stdio.h>
//实现二分查找算法,ele表示要查找的目标元素,[p,q] 指定查找区域
int binary_search(int *arr,int p,int q,int ele) {
int mid = 0;
//如果[p,q] 不存在,返回 -1
if (p > q) {
return -1;
}
// 找到中间元素所在的位置
mid = p + (q - p) / 2;
//递归的出口
if (ele == arr[mid]) {
return mid;
}
//比较 ele 和 arr[mid] 的值,缩小 ele 可能存在的区域
if (ele < arr[mid]) {
//新的搜索区域为 [p,mid-1]
return binary_search(arr, p, mid - 1, ele);
}
else {
//新的搜索区域为 [mid+1,q]
return binary_search(arr, mid + 1, q, ele);
}
}
int main()
{
int arr[10] = { 10,14,19,26,27,31,33,35,42,44 };
//输出二叉查找元素 31 所在位置的下标
printf("%d", binary_search(arr, 0, 9, 31));
return 0;
}
/*
* @Author: [email protected]
* @Date: 2024-10-24
* @LastEditors: None
* @LastEditTime: None
* @FilePath: test.c
* @Description:
*
* Copyright (c) 2024 by [email protected], All Rights Reserved.
*/
/*
编写一个函数,作用是把一个char组成的字符串循环右移n个。比如原来是”abcdefghi”,
如果n=2,移位后应该是”hiabcdefgh”。
*/
#include <stdio.h>
#include <string.h>
void rightRotate(char str[], int n)
{
int len = strlen(str);
char temp[n];
// 保存右移的后 n 个字符
strncpy(temp, str + (len - n), n);
// 后移原字符串的前 len-n 个字符
memmove(str + n, str, len - n);
// 将保存的 n 个字符复制到原字符串的开头
memcpy(str, temp, n);
}
标签:arr,return,int,笔试,mid,ele,str
From: https://www.cnblogs.com/hhail08/p/18500386