句子桥梁网—您身边的句子专家

句子桥梁网—您身边的句子专家

c语言如何输入一些英文单词

59

要实现输入英文单词并输出每个单词首字母大写的功能,可以按照以下步骤进行:

输入处理 :使用 `fgets` 函数读取整行输入,避免使用已弃用的 `gets` 函数。

首字母大写:

遍历字符串,找到每个单词的首字母并将其转换为大写。

输出结果:

输出处理后的字符串。

```c

include

include

include

define MAX_WORD_LENGTH 100

define MAX_WORDS 100

void capitalizeFirstLetter(char *str) {

if (str >= 'a' && str <= 'z') {

str -= 32; // Convert to uppercase

}

}

int main() {

char words[MAX_WORDS][MAX_WORD_LENGTH];

char buffer;

int wordCount = 0;

printf("请输入英文单词(输入空格分隔,结束输入空行):\n");

while (1) {

if (fgets(buffer, sizeof(buffer), stdin) == NULL) {

break; // 输入结束

}

// Remove newline character if present

size_t len = strlen(buffer);

if (len > 0 && buffer[len - 1] == '\n') {

buffer[len - 1] = '\0';

}

// Split the line into words

char *token = strtok(buffer, " ");

while (token != NULL) {

if (strlen(token) > 0) {

capitalizeFirstLetter(token);

printf("%s ", token);

}

token = strtok(NULL, " ");

}

printf("\n");

}

return 0;

}

```

代码说明:

函数 `capitalizeFirstLetter`

检查字符是否为小写字母('a' 到 'z')。

如果是,则通过 `str -= 32` 将其转换为对应的大写字母。

主函数 `main`

定义两个数组:`words` 用于存储输入的单词,`buffer` 用于临时存储输入行。

使用 `fgets` 读取输入行,并去除末尾的换行符。

使用 `strtok` 函数按空格分割输入行,得到每个单词。

对每个单词调用 `capitalizeFirstLetter` 函数,并输出处理后的单词。

注意事项:

`fgets` 函数会读取整行输入,包括空格,因此可以处理包含多个单词的句子。

`strtok` 函数会修改原字符串,如果需要保留原输入,建议先复制一份。

该程序假设输入的单词长度不超过 `MAX_WORD_LENGTH`,且单词之间由空格分隔。

通过这种方式,可以灵活地处理包含任意数量单词的输入,并将每个单词的首字母转换为大写输出。