C语言中删除一个字符串中的字符t和字符s
时间: 2023-12-07 22:04:01 浏览: 31
好的,您可以使用C语言中的字符数组和循环来实现该功能,具体代码如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char string[100] = "this is a test string";
int len = strlen(string);
int i, j;
for(i = 0, j = 0; i < len; i++) {
if(string[i] != 't' && string[i] != 's') {
string[j++] = string[i];
}
}
string[j] = '\0';
printf("%s", string);
return 0;
}
```
输出结果为:"hi i a e ring",即删除了原字符串中的字符t和字符s。
相关问题
C语言中删除一个字符串中指定字符
可以通过遍历字符串的每个字符,将不需要的字符删除。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
void removeChar(char *str, char c) {
int len = strlen(str);
int j = 0;
for (int i = 0; i < len; i++) {
if (str[i] != c) {
str[j++] = str[i];
}
}
str[j] = '\0';
}
int main() {
char str[] = "hello, world!";
char c = 'o';
removeChar(str, c);
printf("%s\n", str); // 输出 "hell, wrld!"
return 0;
}
```
上述代码中,`removeChar` 函数接收一个字符串和一个字符作为参数,遍历字符串中的每个字符,将不需要的字符删除,最终修改原字符串。在主函数中,我们测试了删除字符串中字符 'o' 的效果。
C语言在一个字符串中删除另一个字符串
可以使用C语言的字符串操作函数来实现删除一个字符串中的另一个字符串。
以下是一个示例代码:
```
#include <stdio.h>
#include <string.h>
void removeSubstring(char *s, const char *t) {
int i, j, k, n = strlen(t);
for (i = j = 0; s[i] != '\0'; i++) {
if (strncmp(&s[i], t, n) == 0) {
i += n;
} else {
s[j++] = s[i];
}
}
s[j] = '\0';
}
int main() {
char s[100], t[100];
printf("Enter a string: ");
fgets(s, 100, stdin);
printf("Enter a substring to remove: ");
fgets(t, 100, stdin);
removeSubstring(s, t);
printf("Result: %s\n", s);
return 0;
}
```
在这个例子中,`removeSubstring` 函数接受两个字符串 `s` 和 `t` 作为参数。它在 `s` 中查找并删除所有出现的 `t` 子字符串。`strncmp` 函数用于比较字符串,`i` 和 `j` 分别表示正在读取的字符位置和写入的字符位置。如果找到了 `t` 子字符串,则将 `i` 移动到子字符串的末尾,从而跳过它。
在主函数中,用户被提示输入一个字符串和要删除的子字符串。然后调用 `removeSubstring` 函数并打印结果。
注意:在这个例子中,我们假设输入的字符串不包含任何换行符。如果输入字符串可能包含换行符,则需要进行额外的处理。