请编写函数,求左子串。 函数原型 char* StrLeft(char *dst, const char *src, int len); 说明:函数取源串 src 的前 len 个字符,保存到目的串 dst 中,函数值为 dst。若 len 值不正确,则自动修正。
时间: 2024-10-29 20:20:05 浏览: 26
数据结构-c语言-带main函数-串7-串定位-根据定义求串定位int mysubstring(char* sub,char*。
在C语言中,你可以编写一个如下的`StrLeft`函数来实现这个功能:
```c
#include <string.h>
char* StrLeft(char *dst, const char *src, int len) {
// 检查输入长度是否合理
if (len <= 0 || src == NULL || dst == NULL) {
printf("Invalid input! Please provide a valid length and non-null pointers.\n");
return dst; // 如果长度小于等于0,或者指针为空,返回dst以防止意外覆盖
}
// 如果len大于src剩余字符数,截取src的全部字符
if (len > strlen(src)) {
len = strlen(src);
}
// 将src的前len个字符复制到dst
strncpy(dst, src, len); // 注意 strncpy不会添加'\0'
dst[len] = '\0'; // 手动添加终止符'\0'
return dst;
}
```
这个函数首先检查输入参数的合理性,然后根据实际情况计算并复制源串的前len个字符到目标字符串dst。如果len过大导致无法完全复制,它会自动截取src的所有可用字符。最后,确保dst以空字符'\0'结尾,表示字符串结束。
阅读全文