C语言中字符串 删除子字符串
时间: 2023-12-13 12:02:53 浏览: 232
以下是C语言中删除字符串中指定字符的代码示例:
```c
#include <stdio.h>
void delete_string(char str[], char ch) {
int i, j;
for (i = j = 0; str[i] != '\0'; i++) {
if (str[i] != ch) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char c, str[80];
printf("请输入一个字符串:");
gets(str);
printf("请输入删除字符:");
scanf("%c", &c);
delete_string(str, c);
printf("删除后的字符串为:%s", str);
return 0;
}
```
该代码中,`delete_string`函数接收两个参数:一个是待处理的字符串,另一个是需要删除的字符。函数中使用两个指针`i`和`j`,分别指向原字符串和新字符串的位置。遍历原字符串,如果当前字符不是需要删除的字符,则将其复制到新字符串中,同时移动指针`j`。最后在新字符串的结尾添加一个空字符,表示字符串的结束。
在`main`函数中,首先使用`gets`函数获取用户输入的字符串,然后使用`scanf`函数获取需要删除的字符。最后调用`delete_string`函数,将删除后的字符串输出。
相关问题
c语言删除字符串中的子串pta
根据引用[1]和引用,本题需要实现删除字符串中的子串pta。具体实现步骤如下:
1.定义一个函数,输入为原始字符串和需要删除的子串,输出为删除子串后的字符串。
2.遍历原始字符串,如果当前字符与子串的第一个字符相同,则判断后续字符是否与子串相同,如果相同则删除该子串。
3.将删除子串后的字符串返回。
以下是C语言实现代码:
```c
#include <stdio.h>
#include <string.h>
char* deleteSubStr(char* str, char* subStr) {
int len1 = strlen(str);
int len2 = strlen(subStr);
int i, j, k;
for (i = 0; i < len1; i++) {
if (str[i] == subStr[0]) {
for (j = 1, k = i + 1; j < len2 && k < len1; j++, k++) {
if (str[k] != subStr[j]) {
break;
}
}
if (j == len2) {
memmove(&str[i], &str[k], len1 - k + 1);
i--;
len1 = strlen(str);
}
}
}
return str;
}
int main() {
char str[1001], subStr[] = "pta";
fgets(str, 1001, stdin);
str[strlen(str) - 1] = '\0';
printf("%s", deleteSubStr(str, subStr));
return 0;
}
```
C语言 字符串截去某子字符串
在C语言中,可以使用字符串处理函数来截取某个子字符串。下面是一种常见的方法:
1. 使用strstr函数找到子字符串的起始位置。
2. 使用strcpy函数将子字符串后面的部分复制到原字符串的起始位置。
下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
void removeSubstring(char *str, const char *sub) {
char *match = strstr(str, sub);
if (match != NULL) {
memmove(match, match + strlen(sub), strlen(match + strlen(sub)) + 1);
}
}
int main() {
char str[100] = "Hello World";
const char sub[10] = "World";
removeSubstring(str, sub);
printf("Modified string: %s\n", str);
return 0;
}
```
在上面的示例中,我们定义了一个`removeSubstring`函数,它接受一个字符串和一个子字符串作为参数。该函数使用`strstr`函数找到子字符串的起始位置,并使用`memmove`函数将子字符串后面的部分复制到原字符串的起始位置。最后,我们在`main`函数中调用`removeSubstring`函数,并打印修改后的字符串。
注意:上述示例只会删除第一个匹配到的子字符串。如果需要删除所有匹配到的子字符串,可以使用循环来重复执行该操作。
阅读全文