编写一个能删除字符串中指定字符的程序。 从键盘输入一个字符串(str)(长度不超过40)和一个字符(ch),删除字符串str中的所有字符ch 。例如: 输入: educoder e 输出: ducodr
时间: 2023-06-07 12:07:59 浏览: 46
好的,这是一个关于字符串操作的问题,属于计算机技术范畴,可以回答。以下是一个简单的程序实现:
```
#include <stdio.h>
#include <string.h>
int main()
{
char str[41];
char ch;
int i, j;
// 从键盘输入字符串和字符
printf("请输入字符串:");
scanf("%s", str);
printf("请输入要删除的字符:");
scanf(" %c", &ch);
// 删除字符
j = 0;
for (i = 0; str[i] != '\0'; i++)
{
if (str[i] != ch)
{
str[j] = str[i];
j++;
}
}
str[j] = '\0';
// 输出结果
printf("删除后的字符串为:%s\n", str);
return 0;
}
```
这个程序先从键盘输入一个字符串和一个字符,然后遍历整个字符串,将不是指定字符的字符依次复制到原字符串的新位置,最后在新位置的末尾加上结束符'\0'。最后输出删除后的字符串。
相关问题
编写一个程序,输入一个长度不超过100 的字符串,并删除字符串中的重复字符,c语言
可以使用一个数组来记录每个字符是否出现过,然后遍历字符串,如果该字符没有出现过,则将其加入结果字符串中,并将该字符在数组中标记为已出现。以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[101];
int appeared[256] = {0}; // 记录每个字符是否出现过
char result[101] = ""; // 存储结果字符串
printf("请输入一个字符串:");
scanf("%s", str);
for (int i = 0; i < strlen(str); i++) {
if (!appeared[str[i]]) { // 如果该字符没有出现过
appeared[str[i]] = 1; // 标记为已出现
strncat(result, &str[i], 1); // 将该字符加入结果字符串
}
}
printf("去重后的字符串为:%s\n", result);
return 0;
}
```
对于输入的字符串,我们使用一个长度为256的数组`appeared`来记录每个字符是否出现过,初始值都为0。然后遍历字符串,如果该字符没有出现过,则将其加入结果字符串`result`中,并将该字符在数组`appeared`中标记为已出现。最后输出结果字符串即可。
编写Java程序删除一个字符串中所有的非数字字符,字符串从键盘输入
可以使用Java的正则表达式来实现这个功能,示例代码如下:
```
import java.util.Scanner;
public class RemoveNonnumericCharacters {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个字符串:");
String str = input.nextLine();
//使用正则表达式替换非数字字符为空字符串
String result = str.replaceAll("[^\\d]", "");
System.out.println("去掉非数字字符后的字符串是:" + result);
}
}
```
运行程序,输入一个字符串,比如说:“abc123def456”,输出结果就是:“去掉非数字字符后的字符串是:123456”。