DIR
*opendir(const
char
*filename)
struct
dirent
*readdir(DIR
*dirp)
利用这两个函数获取你目录下
while(
(psDirent=readdir(pdir))
!=
NULL
)
{
//readdir返回的是目录下的名称,然后判断一下当前这个名字是子目录还是文件
struct
stat
st
stat(
pcFileName,
&st
)
if(
S_ISDIR(st.st_mode)
)
continue;//是目录继续循环
else
filecount++;//是文件就加1
}
从循环出来后创建文件名为file(filecount+1)的文件。
这个只是简单思路。最后别忘closedir。因为你的需求里,并未涉及文件创建个数的上限以及如果删掉某个文件后的需求。
通常,如果你目录下文件个数固定似乎更好办一些。
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#define FILE_NAME_MAX 50
#define SEPERATE_STRING_MAX 100
int StrCount(FILE *file,char *str)
int main()
{
char *filename,*spestr
FILE *fp
filename=(char *)malloc(FILE_NAME_MAX)
spestr=(char *)malloc(SEPERATE_STRING_MAX)
printf("Input the filename:")
while(1)
{
scanf("%s",filename)
fp=fopen(filename,"r")
if(fp!=NULL)
{
break
}
printf("Can't open the file.Try Again!")
}
printf("Input the special string:")
scanf("%s",spestr)
printf("%d times of %s in %s.",StrCount(fp,spestr),spestr,filename)
fclose(fp)
free(filename)
free(filename)
return 0
}
int StrCount(FILE *file,char *str)
{
int count=0
char ch
int p=0
while((ch=fgetc(file))!=EOF)
{
if(ch == str[p])
{
// 匹配下一个字符
p++
// 如果已经匹配成功
if(str[p] == '\0')
{
count++
// 从头开始重新匹配
p = 0
}
}
// // 当前读入的字符不匹配 str 相应位置的字符
else
{
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)