gpt4 book ai didi

C:通过 argv[] 将文件名加载到结构中,但我不想要文件类型(例如 .txt)?

转载 作者:太空宇宙 更新时间:2023-11-04 08:35:03 29 4
gpt4 key购买 nike

我正在尝试创建一个数据结构:

typedef struct node_ {
char* fName;
char* lName;
char* origin;
char* destination;
int seatNumber;

struct node_* next;
} Seat;

通过扫描 .txt 文档中的行。来源是文档的名称,例如 chicago.txt。

我刚刚将 argv[i](同样是文件名,例如 chicago.txt)发送到我的原点函数。哪个有效,但是...

现在我需要检查起点是否为目的地,但目的地未使用 .txt 格式。 (例如,chicago.txt != chicago)。我考虑过对前 3 个左右的字母使用 strncmp,但这似乎不是一个很好的解决方案。有没有一种简单的方法可以在将 argv[] 发送到相关函数之前将其修改为不包含 .txt?还是有我没有考虑过的更好的方法来解决这个问题?

最佳答案

不要尝试改变传递的参数。首先将它们复制到局部变量。此示例从提供的参数中删除 .txt 扩展名。

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

char fname [100];

int main (int argc, char *argv[]) {

char *xptr;

if (argc < 2) return 1;
strncpy (fname, argv[1], 99);
strlwr (fname);
xptr = strstr (fname, ".txt");
strncpy (fname, argv[1], 99); // copy arg again to restore orig case
if (xptr != NULL)
*xptr = 0; // truncate string
printf ("%s\n", fname);
return 0;
}

关于C:通过 argv[] 将文件名加载到结构中,但我不想要文件类型(例如 .txt)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26599990/

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