C语言在字符串1中删除字符串2
时间: 2023-12-31 15:06:43 浏览: 76
可以使用C语言的字符串函数`strstr()`和`strcpy()`来实现删除字符串2的功能。具体实现如下:
```c
#include<stdio.h>
#include<string.h>
void deleteSubstring(char str1[], char str2[]) {
int len1 = strlen(str1);
int len2 = strlen(str2);
char *ptr1, *ptr2, *ptr3;
ptr1 = str1;
while ((ptr2 = strstr(ptr1, str2)) != NULL) {
ptr3 = ptr2 + len2;
while (*ptr3 != '\0') {
*ptr2 = *ptr3;
ptr2++;
ptr3++;
}
*ptr2 = '\0';
ptr1 = ptr2;
}
}
int main() {
char str1[100], str2[20];
printf("Enter string 1: ");
gets(str1);
printf("Enter string 2: ");
gets(str2);
deleteSubstring(str1, str2);
printf("String after deletion: %s", str1);
return 0;
}
```
在上述代码中,我们首先计算了字符串1和字符串2的长度。然后,我们使用`strstr()`函数来查找字符串2在字符串1中的位置。如果找到了,我们使用`strcpy()`函数将字符串1中从字符串2开始的所有字符向前移动,直到字符串1结束,然后将字符串1的末尾设置为字符串2的末尾。
请注意,此代码只会删除字符串2的第一个匹配项。如果字符串2在字符串1中出现多次,则需要在循环中使用`strstr()`函数并进行多次删除。
阅读全文