含空格字符串的特殊处理方式
根据我们现在掌握的知识,含空格的字符串,如要读取有 fgets 、 scanf 、getchar 、 getline 四种⽅式解决,但是有时候,根据题⽬的情况,不⼀定⾮要完整的读取这个带空格的字符串,⽽是将字符串中空格隔开的每⼀个字符串,当做⼀个单词处理更⽅便,也避免了读取带空格字符串的各种问题。
B2109 统计数字字符个数 - 洛谷
#include <bits/stdc++.h>
using namespace std;
const int N = 265;
char a[N] = {0};
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s;
getline(cin, s);
int cnt = 0;
for (auto e : s)
{
if (isdigit(e))
cnt++;
}
cout << cnt << endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
const int N = 265;
char a[N] = {0};
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
string s;
int cnt = 0;
while (cin >> s)
{
for (auto e : s)
{
if (isdigit(e))
cnt++;
}
}
cout << cnt << endl;
return 0;
}
数字的特殊处理⽅式
当我们程序运⾏的时候,在控制台输⼊ 123 的时候,这时的 123 是三个字符, 123 是⼀个字符序列,程序会根据代码中的数据类型,可能将 123 解析成整型,也可能将 123 解析成字符串
int num = 0;
cin >> num;//输⼊123, 就被解析成整数
string s;
cin >> s; //输⼊123, 就被解析成字符串
这⾥的解析的⽅式,主要是依赖编译器对变量类型的识别,根据类型再将读取字符串数据转化成对应类型的数据。
我们在写代码的时候,应该根据实际的情况,来决定如何处理输⼊的内容
小乐乐改数字_牛客题霸_牛客网
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int n;
cin >> n;
int i = 0;
int ret = 0;
while (n)
{
if (n % 10 % 2)
ret += 1 * pow(10, i);
//else
// ret += 0 * pow(10, i);
n /= 10;
i++;
}
cout << ret << endl;
return 0;
}
#include <iostream>
#include <cmath>
using namespace std;
int main() {
string s;
cin >> s;
int i = 0;
for (i = 0; i < s.size(); i++)
{
if (s[i] % 2)
s[i] = '1';
else
s[i] = '0';
}
cout << stoi(s) << endl;
return 0;
}
scanf/printf和cin/cout的对⽐
scanf 和 printf 是C语⾔中的标准输⼊输出函数,⽽ cin 和 cout 是C++语⾔中的标准输⼊输出流对象。它们各⾃有优缺点,整体上来说 cin 和 cout 会更加⽅便,但有时候我们也不得不使⽤ scanf 和 printf 。
格式控制差异
- scanf 和 print

最低0.47元/天 解锁文章
936

被折叠的 条评论
为什么被折叠?



