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;
}