C语言编写函数void copy(char s【】,char t【】,int start,int end),将字符数组s中从stert开始到end结束的字符逆序复制到字符数组t中
时间: 2023-12-14 14:36:33 浏览: 42
字符串的复制 c++
4星 · 用户满意度95%
以下是实现该函数的代码:
```c
#include <stdio.h>
#include <string.h>
void copy(char s[], char t[], int start, int end) {
int i, j;
for (i = end - 1, j = 0; i >= start; i--, j++) {
t[j] = s[i];
}
t[j] = '\0'; // 添加字符串结束符
}
int main() {
char s[] = "Hello, world!";
char t[20];
copy(s, t, 2, 7);
printf("%s\n", t); // 输出: lleH
return 0;
}
```
在这个实现中,我们使用了两个循环变量 `i` 和 `j`,其中 `i` 从 `end-1` 到 `start` 逆序遍历 `s` 数组,而 `j` 则从 0 开始遍历 `t` 数组。在每次循环中,我们将 `s[i]` 复制到 `t[j]` 中,从而实现了字符数组的逆序复制。最后,我们在 `t` 数组的末尾添加了字符串结束符 `\0`,以确保 `t` 数组是一个合法的字符串。
阅读全文