用自定义函数写出EXCEL中的left、right、mid函数C语言
时间: 2024-12-18 14:21:42 浏览: 68
在C语言中,虽然Excel的LEFT、RIGHT和MID函数是Excel特有的,但是我们可以编写类似功能的函数来处理字符串操作。这里提供一个简单的示例,模拟这三个函数的功能:
```c
#include <stdio.h>
#include <string.h>
// LEFT函数,返回字符串前指定长度的部分
char* left(char* str, int len) {
if (len <= 0 || len > strlen(str)) {
printf("Invalid length.\n");
return NULL;
}
char* result = (char*)malloc(len + 1); // 分配空间
strncpy(result, str, len);
result[len] = '\0'; // 结束字符串
return result;
}
// RIGHT函数,返回字符串从右开始指定长度的部分
char* right(char* str, int len) {
if (len <= 0 || len > strlen(str)) {
printf("Invalid length.\n");
return NULL;
}
char* result = (char*)malloc(len + 1);
strncpy(result, str + strlen(str) - len, len);
result[len] = '\0';
return result;
}
// MID函数,返回字符串中间指定位置和长度的部分
char* mid(char* str, int start, int len) {
if (start < 0 || len <= 0 || len > strlen(str) - start) {
printf("Invalid position or length.\n");
return NULL;
}
char* result = (char*)malloc(len + 1);
strncpy(result, str + start, len);
result[len] = '\0';
return result;
}
int main() {
char str[] = "Hello, World!";
printf("Left of 'str': %s\n", left(str, 5));
printf("Right of 'str': %s\n", right(str, 6));
printf("Mid of 'str' from index 7 with length 5: %s\n", mid(str, 7, 5));
free(left(str, 5)); // 避免内存泄漏,记得释放
free(right(str, 6));
free(mid(str, 7, 5));
return 0;
}
```
以上代码实现了LEFT、RIGHT和MID函数的基本功能,但在实际应用中,可能会需要考虑更多的边缘情况处理和错误检查。请注意,这个例子没有包含异常处理,实际生产环境中应确保正确管理内存。
阅读全文
相关推荐


















