蓝桥杯十天冲刺-day1(getline读入空格)
getline读入带空格的字符串
解决cin或scanf无法读入空格的问题
作文标题
代码思路
主要通过这个代码体会getline函数可以输入空格的作用
用getline函数输入含空格的字符串,用length()函数记字符串长度
依次扫描不为空格的字符计数
#include<bits/stdc++.h>
using namespace std;
int main(){
string str;
getline(cin,str);.//getline常见用法,输入一串字符串遇到换行符结束
int cnt=0;
int n=str.length();//n获取字符串长度
for(int i=0;i<n;i++){//扫描整个字符串
if(str[i]!=' '){//不算空格
cnt++;
}
}
cout<<cnt<<endl;
}
拓拓在打字
代码思路
- 第一种做法:只输出 不连续的空格和不是空格的字符(getline获取整个字符串)
- 因为cin不读入空格,输入的字符串一遇到空格就结束,输出输入的字符串(不含空格的)在后面加个空格“ ”
第一种做法
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin,s);
for(int i=0;i<s.size();i++)
{
if((s[i]==' '&&s[i+1]!=' ')||(s[i]!=' ')){//只输出不连续的空格和不是空格的字符
cout<<s[i];//不换行
}
}
}
第二种做法
#include<bits/stdc++.h>
using namespace std;
int main()
{
string str;
while(cin<<str){
cout<<str<<" ";
}
}
字符串与数字的转换
作文标题改
数字转字符串:to_string(n)
#include<bits/stdc++.h>
using namespace std;
int main()
{
string t;
string str;
getline(cin,t);//输入 要输入的字符串个数
getline(cin,str);//输入字符串
int cnt=0;
int n=stoi(t);//把输入的字符 转为数字
for(int i=0;i<n;i++)
{
if(str[i]!=' '){
cnt++;
}
}
cout<<cnt<<endl;
}