连接以逗号分隔的名称部分,这些名称保存在 C 中的文本文件中

标签 c arrays string

我有一个包含员工姓名的 .txt 文件。每行以换行结束。
我需要将名字和姓氏的前 3 个字符连接起来形成一个名字,例如,

Schmit,Eric

应该给出输出

EriSch.

大约有 50 行名称。 我如何使用 fgets()getchar()

一起执行此操作
FILE *file = fopen ( "FileName.txt", "r" );

我还有一个功能

void ConcatName(char* firstname,char* lastname,char buffer[])

firstnamelastname 的前三个字符存储在 buffer 中并打印出来。

最佳答案

您可以使用strtok() 将字符串分成两个。因此,对于给定的员工,您应该这样做

char* token = strtok(EmployeeName, ','); 
strcpy(SurName, token);
token = strtok(NULL, delim);
strcpy(FirstName, token);

在您只需要使用连接每个名称的前 3 个字符之后:

strncat(FinalName,FistName,3);
strncat(FinalName,SurName,3);

只需确保正确初始化 FirstNameSurNameFinalName 并将代码放入循环中逐行读取:

   while ((read = getline(&EmployeeName, &len, fp)) != -1) {'code'}

关于连接以逗号分隔的名称部分,这些名称保存在 C 中的文本文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33553179/

相关文章:

c++ - 数组索引分配时程序崩溃

python - 如何缩短这个二维数组代码?

java - 无法正确分割特定字符串

c - 有没有人知道如何用 Kiss-fft API 替换 fftw 中的这些 API?

c - '.' 在 c 中作为 opendir 的参数表示什么?

javascript - Firestore 更新数组字段中的单个项目

c - 查找格式化字符串

c - 尝试理解指针算术

c - 当 Linux 在 C 程序中崩溃时获得更好的调试

c - 字符串引用是否重复?