c语言编写一个程序,根据用户输入英文名和姓先显示姓氏,其后跟一个逗号,然后显示名的首字母

下面是一个用 C 语言编写的程序示例,该程序根据用户输入的英文名和姓,首先显示姓氏,其后跟一个逗号,然后显示名的首字母。

代码说明

  1. 获取用户输入:使用 fgets 函数从用户那里获取全名。
  2. 解析姓名:分离出姓和名。假设用户输入的全名格式为 "FirstName LastName"。
  3. 处理格式:提取姓和名,生成所需的格式。
  4. 显示结果:输出格式化后的结果。

示例代码

c
#include <stdio.h> #include <string.h> #define MAX_LENGTH 100 int main() { char fullName[MAX_LENGTH]; char firstName[MAX_LENGTH]; char lastName[MAX_LENGTH]; // 提示用户输入姓名 printf("请输入英文名和姓(格式:FirstName LastName):"); fgets(fullName, sizeof(fullName), stdin); // 移除末尾的换行符(如果有的话) fullName[strcspn(fullName, "\n")] = '\0'; // 查找空格的位置,用于分割名字和姓 char *spacePos = strchr(fullName, ' '); if (spacePos != NULL) { // 计算姓的长度 size_t firstNameLength = spacePos - fullName; // 计算名的长度 size_t lastNameLength = strlen(spacePos + 1); // 提取姓 strncpy(firstName, fullName, firstNameLength); firstName[firstNameLength] = '\0'; // 提取名 strncpy(lastName, spacePos + 1, lastNameLength); lastName[lastNameLength] = '\0'; // 打印格式化后的姓名 printf("%s, %c.\n", lastName, firstName[0]); } else { printf("输入格式不正确,请使用 \"FirstName LastName\" 格式。\n"); } return 0; }

代码解析

  1. 输入处理:使用 fgets 函数读取用户输入的全名。fgets 可以读取带空格的字符串,并自动添加换行符。
  2. 去除换行符:通过 strcspn 函数查找并去除末尾的换行符。
  3. 查找空格:使用 strchr 函数找到空格的位置,以便分离姓和名。
  4. 分离姓名
    • 通过计算空格位置来分离出姓和名。
    • 使用 strncpy 函数从原始字符串中提取姓和名。
  5. 输出格式:格式化输出,姓后跟逗号和名的首字母。

注意事项

  • 输入格式:程序假设用户输入的格式为 "FirstName LastName"。如果用户输入的格式不同,程序将提示错误。
  • 长度限制:定义了 MAX_LENGTH 作为最大输入长度,避免缓冲区溢出。
  • 错误处理:如果输入格式不正确,程序会给出相应的提示。

总结

该 C 语言程序接受用户输入的英文名和姓,通过分离和格式化字符串,输出姓氏后跟逗号和名的首字母。它演示了基本的字符串处理和输入输出操作。

关键字

C语言, 用户输入, 姓名处理, 字符串分离, fgets, strchr, strncpy, 字符串格式化