蓝桥杯字符串问题,小白总结,c++数组初始化,getline用法

1)今天小白第一次蓝桥杯(第十一届),记录一下吧!


一.首先介绍一下c++数组初始化,下面的题目会用到,是一个小细节吧1

  1.初始化int a[100] = {0};(因为是我学c语言是这样初始化的,但是有的oj网站会报错,所以建议使用第二种
  2.memset();
使用实例:memset(a,0,sizeof(a)); //将数组的所有元素初始化为0;

二.介绍一下getline()的用法

  1.常用方法getline(cin,str,’#‘); 从cin流读取到str字符串,包含头文件<string.h>。读取结束要么一行要么读取到换行或者读取到#字符(可选)。
  2.这是我今天没写出这道题的关键(c语言的读取有点遗忘,c++还没来的及记清)。

2)题目描述:大概里面印象就是读取一行字符串然后,出现过几种字符就得几分。


直接上代码

#include <iostream>
#include <string>
#include <string.h>
using namespace std;
//输入一行小写字母,输入的有多少种字符,就得多少分 例如:a,b,c,a = 3 a,a = 1; 
int main(){
	string s;
	int score;
	getline(cin,s);
	int a[30];//记录每个字符的出现
	memset(a,0,sizeof(a)); 
	for(int i=0;i<sizeof(s)-1;i++){
		if(s[i]>='a' && s[i]<='z'){ //判断字符是否为小写字母
			if(a[int(s[i]-'a')]==0 ){//判断该字符是否出现过
				a[s[i] - 'a'] =1;
				score++;
			}
		}
		if(score>=26) break;
	}
	cout<<score;
	return 0;
} 

3)总结

一.今天第一次参加比赛感受,在那个地方写代码和自己平常写真的一点都不一样,有点紧张,而且带着口罩快闷死了(心疼医疗工作者)。

二.今天这道题我写了一半,没写完,忘了getline咋用尴尬。不过感觉这种写法会超时,没试过。

三.感觉主要无论什么考试对于我这种小白,主要大部分还是考基础,打好基础,加油!

四,感谢看完,都要加油,下次再来

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值