linux C语言实现c++的substr
时间: 2023-08-17 11:06:15 浏览: 105
在 Linux 下使用 C 语言实现 C++ 的 substr 函数,可以使用以下代码:
```c
#include <stdio.h>
#include <string.h>
char* substr(char* str, int start, int end) {
int len = strlen(str);
if (start < 0 || start >= len || end < start || end > len) {
return NULL;
}
char* sub = (char*)malloc((end - start + 1) * sizeof(char));
strncpy(sub, str + start, end - start);
sub[end - start] = '\0';
return sub;
}
int main() {
char str[] = "Hello, world!";
char* sub = substr(str, 3, 7);
printf("%s\n", sub);
free(sub);
return 0;
}
```
这段代码定义了一个 substr 函数,接受一个字符串、起始位置和结束位置作为参数,返回从起始位置到结束位置之间的子串。在函数内部,先使用 strlen 函数获取字符串长度,判断起始位置和结束位置是否合法,如果不合法则返回 NULL。然后通过动态内存分配 malloc 函数分配存储子串的空间,使用 strncpy 函数将子串复制到新的空间中,最后在子串末尾添加一个空字符 '\0'。在主函数中,我们测试了一下 substr 函数的使用,最后记得通过 free 函数释放动态分配的内存空间。
阅读全文