📜  C测验– 105 |问题1(1)

📅  最后修改于: 2023-12-03 15:00:12.525000             🧑  作者: Mango

C测验- 105 | 问题1

这是一道C语言的编程题。下面我会给你介绍问题背景、问题描述以及如何解决这道问题。

问题背景

随着互联网的发展,人们对计算机的需求越来越高。因此,计算机科学之父提出了C语言,作为计算机科学的基础。C语言的语法简洁清晰,可读性强,还可以在多个平台上运行。

问题描述

现在,我们需要你完成一个程序,可以输入一个字符串,并在屏幕上输出该字符串中每个单词的长度。

例如,如果输入字符串为:"the quick brown fox jumps over the lazy dog", 则输出为:

the: 3
quick: 5
brown: 5
fox: 3
jumps: 5
over: 4
the: 3
lazy: 4
dog: 3
如何解决问题

下面是一份C语言代码,来解决这个问题。

#include <stdio.h>
#include <string.h>

int main() {
    char str[1024];
    printf("请输入字符串:");
    fgets(str, 1024, stdin);   //读取输入字符串

    char *pch;     //用来遍历字符串中每个单词
    pch = strtok(str, " ");    //将字符串以空格拆分成多个单词

    while (pch != NULL) {
        printf("%s: %lu\n", pch, strlen(pch));    //输出每个单词及其长度
        pch = strtok(NULL, " ");
    }
    return 0;
}

下面是代码的分析:

  • 第2行代码定义了一个长度为1024的字符数组str,用于存储输入的字符串。
  • 第3行代码使用printf函数,提示用户输入字符串。
  • 第4行代码使用fgets函数读取用户输入的字符串,最多读取1024个字符。
  • 第7-10行代码使用strtok函数将输入字符串以空格为分界拆分成多个字符串,然后将其赋值给pch指针。
  • 第12行代码使用strlen函数来计算单词的长度。
  • 第13行代码使用printf函数输出每个单词和它的长度。
  • 第14行代码使用strtok函数获取下一个单词。

最后,记得在程序的末尾添加return 0语句,表示程序正常结束。