请编写函数,求右子串。 函数原型 char* StrRight(char *dst, const char *src, int len); 说明:函数取源串 src 的后 len 个字符,保存到目的串 dst 中,函数值为 dst。若 len 值不正确,则自动修正。C语言
时间: 2024-10-26 17:03:11 浏览: 15
在C语言中,你可以编写一个名为`StrRight`的函数来实现这个功能。这个函数接收两个参数:一个是目标字符串`dst`,另一个是要提取右子串的源字符串`src`,还有一个整数`len`表示需要获取的字符数。函数返回的是`dst`的指针。
以下是一个简单的实现示例:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
char* StrRight(char* dst, const char* src, int len);
char* StrRight(char* dst, const char* src, int len) {
// 首先检查输入长度是否大于0,并且源字符串长度足够
if (len <= 0 || len > strlen(src)) {
len = strlen(src); // 如果len不正确,自动修正为源串长度
}
// 拷贝源字符串的最后len个字符到目标字符串
strncpy(dst, src + strlen(src) - len, len); // 注意加上减去len是为了从后往前取
dst[len] = '\0'; // 添加终止符'\0'
return dst;
}
int main() {
char str[] = "Hello, World!";
char result[20];
StrRight(result, str, 5); // 获取"World"部分
printf("Result: %s\n", result);
return 0;
}
```
在这个例子中,如果`len`过大,会截取源字符串的最后的部分。如果`len`小于等于0,函数会直接使用源字符串的整个长度。当你运行这个程序,它将输出"World"。
阅读全文