gpt4 book ai didi

c - 一个 token 会导致段错误,而另一个 token 则不会

转载 作者:行者123 更新时间:2023-11-30 17:15:23 24 4
gpt4 key购买 nike

我有一个从目录读取文件名的函数。我想提取这些名称,将它们放入一个数组中以供以后使用,全名,名称部分和扩展部分(3个不同的数组)。我的函数能够写入全名和名称部分而不是扩展名。任何人都可以帮助我,这是我的代码摘录; token 1 可以复制到数组中,但复制 token 2 会导致段错误;

while((entry=readdir(dirp2))!=NULL) 
{
strcpy(t_filename,entry->d_name);
exception1=strcmp(entry->d_name,".");
exception2=strcmp(entry->d_name,"..");
exception3=strcmp(entry->d_name,".svn");
if((exception1!=0)&&(exception2!=0)&&(exception3!=0))
{
num_files++;
extension[num_files-1]=(char*)malloc(20*sizeof(char));
strcpy(t_string, entry->d_name);
token1=strtok(t_string,".");
token2=strtok(NULL,".");
strcpy(extension[num_files-1],token1);
}

}

最佳答案

如果您在 *inx 平台上打开终端并输入“ls -al”,您将看到“.”和“..”目录行没有文本名称,因此没有扩展名。

因此发布的代码试图跳过这些条目。

发布的代码还尝试跳过任何以“svn”结尾的目录名称

token1 是第一个“.”之前的所有内容(如果名称中没有“.”,则为整个字符串。

token2 是第一个“.”之间的所有内容和字符串的末尾。 (如果字符串中没有“.”,则为 NULL。

代码仅保存在数组 token1 中

Token1 可以为以“.”开头的文件名的 NULL

获取指向“扩展”字符串的指针。

从字符串的末尾开始,然后返回到字符串的前面,寻找“.”

如果是“.”未找到或在第一个字符位置找到,则没有扩展名,因此指向扩展名的指针应为 NULL

关于c - 一个 token 会导致段错误,而另一个 token 则不会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30008281/

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