在C语言中,没有直接提供substr函数,但可以通过其他方式实现类似的功能。以下是一种常见的实现方式:
#include <stdio.h>
#include <string.h>
void substr(char* src, int start, int len, char* dest) {
int srcLen = strlen(src);
if (start >= srcLen) {
dest[0] = '\0'; // 如果起始位置超过字符串长度,则返回空字符串
return;
}
int end = start + len;
if (end > srcLen) {
end = srcLen;
}
strncpy(dest, src + start, end - start);
dest[end - start] = '\0'; // 手动在截取的子字符串末尾添加字符串结束符
}
int main() {
char src[] = "Hello, world!";
char dest[20];
substr(src, 7, 5, dest);
printf("%s\n", dest); // 输出 "world"
return 0;
}
在上面的代码中,substr函数接受四个参数:源字符串src、起始位置start、截取长度len以及目标字符串dest。它首先计算源字符串的长度srcLen,然后根据start和len计算出截取的结束位置end。如果start大于等于源字符串的长度,则直接将目标字符串置为空字符串。否则,使用strncpy函数从源字符串中截取子字符串,并手动在末尾添加字符串结束符。最后,通过printf函数输出截取的子字符串。