通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函

本文介绍了一个使用C++实现的简单字符串过滤程序。该程序能够从输入字符串中筛选出所有的小写英文字母,并将其输出到一个新的字符串中。通过遍历输入字符串并与预定义的字母数组进行比较来实现这一功能。
#include<iostream>


using namespace std;
void stringFilter(const char *pInputStr, long lInputLen, char *pOutputStr)
{
char alp[52] = { 0 };
for (int i = 0; i < 26; i++)
{
alp[i] = 'a'+i;
}
/*for (int i = 26; i < 52; i++)
{
alp[i] = 'A' + i;
}*/


for (int i = 0; i < lInputLen; i++)
{
int flag = 0;
for (int i = 0; i < 26; i++)
{
if (*pInputStr == alp[i])
{
alp[i] = '\0';
flag = 1;
break;
}
}
if (flag)
{
*pOutputStr = *pInputStr;
pOutputStr++;
}
pInputStr++;

}
}


void main()
{


char a[] = "abcadbefghjkabcadbefghijk";
long len = strlen(a);
char *p = new char(len + 1);
memset(p, 0, len + 1);
stringFilter(a, len, p);
cout <<"过滤后字符串:"<< p<<endl;




//system("pause");
cin.get();
}

以下为使用 Java 和 C 语言编写的输入字符串分别统计其中大写字母小写字母个数的程序。 ### Java 代码示例 ```java import java.util.Scanner; public class CharacterCount { public static void main(String[] args) { // 使用 Scanner 类获取用户输入的字符串 Scanner sc = new Scanner(System.in); String str = sc.nextLine(); // 创建 2 个变量,分别记录大写字母小写字母出现的个数 int bigCount = 0; int smallCount = 0; // 遍历整个字符串,获取每一个字符 for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); // 判断字符是大写字母 if (c >= 'A' && c <= 'Z') { bigCount++; } // 判断字符小写字母 else if (c >= 'a' && c <= 'z') { smallCount++; } } // 输出字符出现的个数 System.out.println("大写字母个数:" + bigCount); System.out.println("小写字母个数:" + smallCount); } } ``` ### C 语言代码示例 ```c #include <stdio.h> // 定义一个数,用于统计大写字母小写字母的个数 void fun(char *s, int *a, int *b) { // 遍历传递过来的字符串 while (*s) { // 判断字符是大写字母 if (*s >= 'A' && *s <= 'Z') { (*a)++; } // 判断字符小写字母 else if (*s >= 'a' && *s <= 'z') { (*b)++; } s++; } } int main() { char s[100]; int upper = 0, lower = 0; // 提示用户输入一个字符串 printf("\nPlease enter a string : "); gets(s); // 调用实现地址传递 fun(s, &upper, &lower); // 输出统计结果 printf("\n upper = %d lower = %d\n", upper, lower); return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值