- 写一个函数实现截取字符的功能( 使用指针完成 ): - 如:有字符 “hello,world” - int startIndex = 2; int endIndex = 6; - 结果: "llo,"
时间: 2024-12-15 07:19:29 浏览: 6
在C语言中,你可以编写一个函数来使用指针和字符串处理来截取指定范围内的字符。下面是一个简单的示例函数实现:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void slice_string(char *str, int start, int end);
int main() {
char input[] = "hello,world";
int startIndex = 2;
int endIndex = 6;
// 调用函数并打印结果
slice_string(input, startIndex, endIndex);
return 0;
}
// 定义slice_string函数
void slice_string(char *str, int start, int end) {
if (start >= 0 && end <= strlen(str) && start < end) { // 验证索引是否有效
char *slice = malloc((end - start + 1) * sizeof(char)); // 分配空间存放新字符串
if (slice != NULL) {
for (int i = start, j = 0; i <= end; i++, j++) {
slice[j] = str[i]; // 将目标区间内的字符复制到新的字符数组
}
slice[end - start] = '\0'; // 添加终止符
printf("%s", slice); // 输出结果
free(slice); // 释放内存
} else {
printf("Memory allocation failed.");
}
} else {
printf("Invalid index range.");
}
}
```
在这个例子中,`slice_string`函数接受一个字符串指针`str`,以及起始索引`start`和结束索引`end`作为参数。它首先检查索引的有效性,然后动态分配一个新的字符数组来保存截取的部分。接着,函数遍历指定范围的字符并将它们复制到新数组。最后,添加终止符并打印结果,完成后记得释放内存。
阅读全文