pta6-2 字符串的删除
时间: 2024-06-04 14:06:22 浏览: 55
题目描述:
给定一个字符串S和一个字符T,从S中删除所有的T字符,输出删除后的字符串。字符串中可能包含空格。
输入格式:
第一行输入一个字符串S。
第二行输入一个字符T。
输出格式:
输出删除后的字符串。
数据范围:
1≤∣S∣≤10000
输入样例:
They are students
aeiou
输出样例:
Thy r stdnts
算法1:
C++ 代码
相关问题
c语言pta7-1删除数字字符
以下是C语言实现删除数字字符的代码:
```c
#include <stdio.h>
#include <string.h>
int main()
{
char str[10000];
char new_str[10000];
int i, j = 0;
gets(str);
for (i = 0; i < strlen(str); i++) {
if (str[i] < '0' || str[i] > '9') {
new_str[j] = str[i];
j++;
}
}
new_str[j] = '\0';
printf("%s", new_str);
return 0;
}
```
该代码通过遍历输入的字符串,将非数字字符存入新的字符串中,最后输出新的字符串即可实现删除数字字符的功能。
C语言中pta删除重复字符串
在C语言中,删除数组或字符串中的重复元素并不是直接内置的功能,因为C语言本身并不支持原地高效删除元素的操作。但是,你可以通过创建一个新的动态数组或者利用循环和临时存储来实现这个功能。这里是一个简单的示例,它展示了如何在一个字符数组中去除重复的字符串:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_LEN 100
void removeDuplicates(char str[], int len) {
if (len == 0) return; // 空字符串不需要处理
int i, j;
for (i = 0; i < len - 1; i++) { // 遍历字符串
for (j = i + 1; j < len; j++) { // 比较相邻字符
if (str[i] == str[j]) { // 如果找到重复字符
memmove(&str[j], &str[j+1], (len - j) * sizeof(str[0])); // 移动j后的元素覆盖重复字符
len--; // 减少长度,因为我们移动了一个字符
j--; // 重新开始比较
}
}
}
}
int main() {
char str[MAX_LEN];
printf("Enter a string with duplicates: ");
fgets(str, sizeof(str), stdin); // 获取用户输入,不包括换行符
// 去除末尾的换行符
str[strlen(str) - 1] = '\0';
int original_len = strlen(str);
removeDuplicates(str, original_len);
printf("String after removing duplicates: %s\n", str);
return 0;
}
```
在这个例子中,`removeDuplicates`函数会遍历输入的字符串,并如果发现重复字符,就将后面的字符向前移一位以覆盖重复的字符。注意,这种方法不会改变原始数组的大小,而是创建了一个"假象",使得字符串看起来好像没有重复。
阅读全文