gpt4 book ai didi

C: 获取 d_name 的第一个字符

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

只是想知道,给定以下代码代码片段

#include    <stdio.h>
#include <sys/types.h>
#include <dirent.h>

void do_ls(char []);

main(int ac, char *av[])
{
if ( ac == 1 )
do_ls( "." );
else
while ( --ac ){
printf("%s:\n", *++av );
do_ls( *av );
}
}

void do_ls( char dirname[] )



{
DIR *dir_ptr; /* the directory */
struct dirent *direntp; /* each entry */

if ( ( dir_ptr = opendir( dirname ) ) == NULL )
fprintf(stderr,"ls1: cannot open %s\n", dirname);
else
{
while ( ( direntp = readdir( dir_ptr ) ) != NULL )
printf("%s\n", direntp->d_name[0] );
closedir(dir_ptr);
}
}

如何获取每个条目的特定字符(例如名称中的第一个字符)而不是整个名称,而不是获取每个条目的全名。在代码中我尝试使用 direntp->d_name[0] 但它没有用。

如有任何帮助/提示,​​我们将不胜感激。

最佳答案

printf 中的 %s 更改为 %c,这将打印一个字符。

#include    <stdio.h>
#include <sys/types.h>
#include <dirent.h>

void do_ls(char []);

int main(int ac, char *av[])
{
if ( ac == 1 )
do_ls( "." );
else {
while ( --ac ) {
printf("%s:\n", *++av );
do_ls( *av );
}
}
return 0;
}

void do_ls( char dirname[] )
{
DIR *dir_ptr; /* the directory */
struct dirent *direntp; /* each entry */

if ( ( dir_ptr = opendir( dirname ) ) == NULL )
fprintf(stderr,"ls1: cannot open %s\n", dirname);
else
{
while ( ( direntp = readdir( dir_ptr ) ) != NULL )
printf("%c\n", direntp->d_name[0] );
closedir(dir_ptr);
}
}

关于C: 获取 d_name 的第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43305417/

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