.串的指定位置截取: 采用顺序存储方式存储串,用C语言编写函数,在串str1中的指定下标处截取指定长度len,赋给串str2,同时也输出截断后的串str1。 例:str1=“abcd123ef",i=4, len=3.输出str1=“abcdef", str2=“123"
时间: 2024-10-14 11:11:03 浏览: 24
在C语言中,我们可以创建一个函数来实现这个功能。假设字符串是以字符数组的形式存储的,可以按照以下步骤操作:
```c
#include <stdio.h>
#include <string.h>
void substring(char* str1, int i, int len, char* str2) {
// 检查输入的有效性
if (i < 0 || len <= 0 || i + len > strlen(str1)) {
printf("Invalid input!\n");
return;
}
// 截取子串并复制到str2
strncpy(str2, &str1[i], len);
str2[len] = '\0'; // 确保字符串结束符为'\0'
// 输出原串str1截断后的部分
printf("str1 after truncation: %s\n", str1);
// 输出新串str2
printf("str2: %s\n", str2);
}
int main() {
char str1[] = "abcd123ef";
int i = 4;
int len = 3;
substring(str1, i, len, str2); // 假设str2是一个已经初始化过的足够大的字符数组
return 0;
}
```
在这个例子中,`substring`函数首先检查输入的位置和长度是否合法,然后使用`strncpy`函数安全地从原始字符串`str1`中截取指定长度的部分到`str2`。最后,打印出截断后的`str1`和提取的新子串`str2`。
阅读全文