这个题目意思非常简单,重点是我们该如何处理这些问题。cpp和c语言都没有split
函数,否则这个题目直接可以秒杀了。那我们该如何是实现这个题目呢?
- 方法一: 使用cpp内置的sstream库,这里可以使用字符串流的形式+cin不能接收空格这两个特性来完成。
- 方法二: 我们可以采用分组循环的方式来实现(推荐)
具体机试的时候推荐使用方法二,因为不确定这个函数学校能不能使用。
#include <bits/stdc++.h>
#include <sstream>
using namespace std;
int main()
{
string s;
getline(cin, s, '.');
stringstream ss(s);
string t;
while (ss >> t) {
cout << t.length() << " ";
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin, s, '.');
int i = 0, n = s.length();
while (i < n) {
int start = i;
while (i < n && s[i] != ' ') i++;
cout << i - start << " ";
i++;
}
return 0;
}