如何用c语言来统计一个目录中文件的个数

如何用c语言来统计一个目录中文件的个数,第1张

楼主你好

具体代码如下:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define N 40

int main()

{

int i,count = 0

char *cSource,*cSearch

FILE *fp

cSource = (char *)malloc(N * sizeof(char))

cSearch = (char *)malloc(3 * sizeof(char))

if((fp = fopen("word.txt", "r")) == NULL)

{

printf("文件打开失败!\n")

exit(0)

}

printf("输入统计的汉字:")

scanf("%s", cSearch)

fgets(cSource, N, fp)

for(i = 0i <(int)strlen(cSource)i++)

{

if(cSource[i] == cSearch[0] &&cSource[i+1] == cSearch[1])

//一个汉字占两个字节 所以需要判断两个字节的内容

count++

}

printf("%d\n", count)

return 0

}

如果word.txt中包含的内容为:你好吗 你 你

输入:你

输出:3

希望能帮助你哈

1 最简单的利用dir 命令

#include<stdio.h>

int main(void)

{

char *filepath = "c:"/* 这里为你要设置的绝对路径 */

char f[400] = "dir "

strcat(f,filepath)

system(f)

system("pause")

return 0

}

2---

#include <stdio.h>

#include <io.h>

//节点

typedef struct FileName

{

char Name[500]//定义文件名上限为500

struct FileName *next

}node

//链表头指针

node *Head = NULL

//释放函数

int Free()

{

int count = 0

node *NowNode = Head

while(NowNode->next)

{

Head = Head->next

free(NowNode)

NowNode = Head

count++

}

free(Head)

Head = NULL

count++

return count

}

int main()

{

struct _finddata_t c_file

long hFile = 0

node *NewNode = NULL

node *np = NULL//指向头节点的指针

int sum = 0//目标路径下的文件数目

if((hFile = _findfirst("c:\\*.*"/*设置路径和文件类型*/,&c_file)) == -1l)

{

printf("There is no file in current directory!")

}

else

{

//处理第一个文件

NewNode = (node *)malloc(sizeof(node))

strcpy(NewNode->Name,(c_file.name))

NewNode->next = NULL

Head = NewNode

//处理其他文件

while((_findnext(hFile,&c_file)) == 0)

{

NewNode = (node *)malloc(sizeof(node))

strcpy(NewNode->Name,(c_file.name))

NewNode->next = Head

Head = NewNode

}

}

//输出所有文件名

np = Head

while(np)

{

printf("%s\n",np->Name)

np=np->next

sum++

}

printf("该路径下共有%d个文件\n",sum)

sum = Free()

printf("%d个节点被释放",sum)

getchar()

return 0

}

源代码如下:

#include<stdio.h>

#include<string.h>

void main()

{

char str[20]

int num=0,letter=0,other=0

int i=0

scanf("%s",str)

for(i=0i<strlen(str)i++)

{

if(str[i]>='0'&&str[i]<='9') num++

else if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z') letter++

else other++

}

printf("numbers: %d\nletters: %d\nothers: %d\n",num,letter,other)

}

扩展资料

1、统计文件的字符数、单词数以及总行数,包括每行的字符数和单词数。

2、空白字符(空格和tab缩进)不计入字符总数;单词以空格为分隔。不考虑一个单词在两行的情况,限制每行的字符数不能超过1000。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11525647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存