{ }codelper
分割字符串读取一行P0012

统计单词

给出一行用空格分隔的英文单词。
空格可能连续出现,也可能出现在行首或行尾。
输出单词总数。

输入
长度 1 到 200,至少一个单词
输出
单词数
样例 1 · stdin
  hello   big world 
stdout
3
main.py
输入(stdin)

运行时这些行会依次作为 input()/标准输入传入(运行中不会等待输入)。

$ 就绪

请在电脑上打开以编写和运行代码。在手机上可以查看题目和题解。

其他语言怎么写?查看各语言题解 · 8 种语言题解

空格连续时,分割方法不同答案也不同:Python split()(无参数)会自动合并,而 split(" ") 会把空片段也算进去。
Java 先 trim() 再 split("\\s+"),C# 用 RemoveEmptyEntries。
C 和 C++ 的 scanf("%s")、cin >> 会跳过空白,读取的次数就是答案。

Pythonmain.py · 1 行
print(len(input().split()))
JavaScriptmain.js · 2 行
const line = require("fs").readFileSync(0, "utf8").split("\n")[0];console.log(line.split(" ").filter((w) => w !== "").length);
TypeScriptmain.ts · 3 行
import { readFileSync } from "node:fs";const line: string = readFileSync(0, "utf8").split("\n")[0];console.log(line.split(" ").filter((w) => w !== "").length);
JavaMain.java · 8 行
import java.util.Scanner; public class Main {    public static void main(String[] args) {        String line = new Scanner(System.in).nextLine().trim();        System.out.println(line.split("\\s+").length);    }}
C#Main.cs · 10 行
using System; class Program{    static void Main()    {        string line = Console.ReadLine();        Console.WriteLine(line.Split(' ', StringSplitOptions.RemoveEmptyEntries).Length);    }}
C++main.cpp · 9 行
#include <iostream>#include <string> int main() {    std::string w;    int count = 0;    while (std::cin >> w) count++;    std::cout << count << '\n';}
Cmain.c · 9 行
#include <stdio.h> int main(void) {    char w[201];    int count = 0;    while (scanf("%200s", w) == 1) count++;    printf("%d\n", count);    return 0;}
Craykonmain.cray · 3 行
line = 控制台.读行();words = line.分割("");控制台.输出(words.数量);