gpt4 book ai didi

c - 如何从 c 中的两个(纯文本)文件中的两个元素创建字符串?

转载 作者:行者123 更新时间:2023-11-30 19:38:49 24 4
gpt4 key购买 nike

我的程序从两个文件中读取(名字和姓氏)。通过到目前为止我的程序,我打印了客户 ID,并在其旁边打印了名字和姓氏。现在我还需要打印“登录 ID”,它将是名字和所有姓氏的第一个字母。这是我到目前为止的程序。我以为制作登录 ID 很容易,但对于我的水平来说有点棘手。 (如果有些人编译时遇到问题,请尝试在 for 循环之外声明“i”)。

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

int main(int argc, char ** argv)
{
if ( argc != 2 )
{
printf("usage: %s no_of_records\n", argv[0]);
exit(1);
}

int nrecords = atoi(argv[1]);

typedef struct test
{
int num; char *firstName; char *lastName;
} CU;

char buf[256];
char * fname;
char * lname;
CU * cup = malloc ( nrecords * sizeof(CU));
CU * cufirst = cup;

FILE * fpfirst;
FILE * fplast;

if ( (fpfirst = fopen("FirstNames", "r")) == NULL)
{
fprintf(stderr, "Error reading file FirstNames");
abort();
}
if ( (fplast = fopen("LastNames", "r")) == NULL)
{
fprintf(stderr, "Error reading file LastNames");
abort();
}

for (int i = 0; i < nrecords; )
{
cup -> num = ++i;
fgets(buf, sizeof(buf), fpfirst); /* get line */
fname = strndup(buf, strlen(buf)-1); /* omit newline */
cup -> firstName = (char *) strdup(fname);

fgets(buf, sizeof(buf), fplast);
lname = strndup(buf, strlen(buf)-1);
cup -> lastName = (char *) strdup(lname);

cup++;
}
cup = cufirst;
for (int i = 0; i < nrecords; i++)
{
printf("%03d\t%s\t\t%s\n", cup -> num, cup -> firstName, cup -> lastName);
cup++;
}
return 0;
}

最佳答案

要打印名字的第一个字母,后跟整个姓氏,请使用 %c 转换来打印第一个字母,使用 %s 转换来打印打印姓氏,如下所示:

printf( "%c%s", cup->firstName[0], cup->lastName );

关于c - 如何从 c 中的两个(纯文本)文件中的两个元素创建字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37494399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com