C语言字符串删除中间部分字符串
时间: 2023-09-02 12:06:32 浏览: 54
在C语言中,要删除字符串中的中间部分字符串,你可以使用以下方法:
1. 使用strcpy函数和strcat函数来实现。首先,你需要找到要删除的部分字符串的起始位置和结束位置。然后,你可以使用strcpy函数将起始位置之前的部分复制到一个新的字符串中,再使用strcat函数将结束位置之后的部分追加到新的字符串中。
```c
#include <stdio.h>
#include <string.h>
void deleteSubstring(char *str, int start, int end) {
char newString[100]; // 假设新的字符串不超过100个字符
// 复制起始位置之前的部分到新的字符串中
strncpy(newString, str, start);
newString[start] = '\0';
// 追加结束位置之后的部分到新的字符串中
strcat(newString, str + end + 1);
// 将新的字符串复制回原来的字符串
strcpy(str, newString);
}
int main() {
char str[100] = "Hello World";
int start = 5; // 起始位置
int end = 9; // 结束位置
deleteSubstring(str, start, end);
printf("Result: %s\n", str); // 输出结果:Hello
return 0;
}
```
2. 使用指针操作来实现。你可以使用指针来定位要删除的部分字符串,并将其后面的字符向前移动。
```c
#include <stdio.h>
void deleteSubstring(char *str, int start, int end) {
int i, j;
int len = strlen(str);
// 向前移动字符
for (i = start, j = end + 1; j <= len; ++i, ++j) {
str[i] = str[j];
}
str[i] = '\0'; // 将字符串尾部设置为结束符
}
int main() {
char str[100] = "Hello World";
int start = 5; // 起始位置
int end = 9; // 结束位置
deleteSubstring(str, start, end);
printf("Result: %s\n", str); // 输出结果:Hello
return 0;
}
```
这两种方法都可以实现删除字符串中的中间部分字符串,你可以根据自己的需求选择合适的方法。