C++ 实现删除字符串中的数字并把小写字母转化为大写字母

字符串处理


描述
给定一个字符串,将其中所有的小写字母转换成大写字母,并删除数字。

输入
输入一行,包含一个字符串(长度不超过100,可能包含空格)。

输出
输出转换后的字符串。

输入样例1
helloworld123Ha

输出样例1
HELLOWORLDHA

来源引用
https://blog.csdn.net/qq_31790997/article/details/86691270

题解:
思路:

枚举每个字符串判断其是否为小写字母,若为小写字母,则该字符减去(‘a’ - ‘A’),
若为数字就删除,且需要把数字后面元素全部往前挪一位。

注:
1° 字符串可能有空格,故用getline输入,而不是cin,格式:getline(cin, 字符串名称),
2° 用(‘a’ - ‘A’)的原因是:小写字母和大写字母在计算中用ASCII码表示(ASCII码对照表),小写字母的ASCII码值都比大写字母的ASCII码值大,而它们相差(‘a’ - ‘A’)故减去(‘a’ - ‘A’)。
3° 若是大写字母转成小写字母,则加上(‘a’ - ‘A’)。

如果出现数字

   if(str[i]<='9'&& str[i]>='0')

如果出现小写字母

   if ('a' <= str[i] && str[i] <= 'z')

完整代码

 #include <string>
 #include <iostream>
  using namespace std;
    int main() {
    	string str;
    	getline(cin, str);  
    	for (int i = 0; i < str.size(); i++) {
    		if ('a' <= str[i] && str[i] <= 'z') {  // 判断是否为小写字母 
    			str[i] = str[i] - ('a' - 'A');  // 转成大写字母 
    		}
    		if(str[i] <= '9' && str[i] >= '0'){//判断数组中的为数字
				for(j=i; str[j] != '\0'; j++){
					str[j] = str[j+1];//后面位置全部往前挪一位
				}
		}
    		cout << str[i];//最终处理完的字符串输出
    	}
    	return 0;
    }

完结

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值