📅  最后修改于: 2023-12-03 15:38:55.433000             🧑  作者: Mango
在 C 编程语言中,读取空格分隔的单词可以使用 scanf 函数。scanf 函数可以从标准输入流(通常是键盘输入)中读取数据,并根据格式字符串将数据解析成相应的类型。
scanf 函数的格式字符串包含了转换说明和格式控制字符,用来说明要读取的数据的类型和格式。读取空格分隔的单词时,我们需要使用字符串格式控制字符 "%s"。具体格式如下:
char str[100];
// 读取一个字符串
scanf("%s", str);
上面的代码将从标准输入流中读取一个字符串,并将其存储到 char 类型的数组 str 中。
需要注意的是,由于 scanf 函数会忽略空格、制表符和换行符,因此上面的代码只能读取一个单词。如果要读取多个单词,则需要使用循环结构,依次读取每个单词。示例如下:
char word[100];
// 读取多个单词
while (scanf("%s", word) != EOF) {
// 处理读取到的单词
}
上面的代码将不断读取输入流中的单词,直到遇到文件结尾符 EOF。在每次循环内部,我们可以使用读取到的单词进行处理。
下面是一个完整的示例程序,可以读取多个单词,并将其转换成小写形式输出。
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#define MAX_WORDS 100
int main() {
char word[MAX_WORDS];
while (scanf("%s", word) != EOF) {
// 转换成小写形式
for (int i = 0; i < strlen(word); i++) {
word[i] = tolower(word[i]);
}
printf("%s ", word);
}
return 0;
}
在 C 编程语言中,通过使用 scanf 函数和字符串格式控制字符 "%s",可以方便地读取空格分隔的单词。为了读取多个单词,需要使用循环结构,并在每次循环内部对读取到的单词进行处理。