返回首页

我想算多少次在"文件"一词出现的部分数据。我将如何做到这一点?谢谢。

void printRawData(unsigned char *data, int length, int more)

{

	int i, c=0;

	printf("     -------------One Data Begins-------------\n");

	for (i=0; i<length;>	{

		if ((data[i]>30 && data[i]<122) || 

			(((data[i]==10) || (data[i]==13) || (data[i]==123) || (data[i]==125))

            && (more>0)))

		{

			printf("%c", data[i]);

			c+=1;

                }

		else

		{

			printf("[%i]", data[i]);

			c+=3;

			if (data[i]>9) c++;

			if (data[i]>99) c++;

                }

		if (c>=47)

		{

			printf("\n");

			c=0;

                }

       }

}

:7766180 |会员

回答

评论会员:游客 时间:2012/02/04
看看imgsrc=],您可以遍历你的字符串的话[编辑]改为strtok_sstrtokstrtok是贬值和不安全。到OP评论:codeprelang="c++"spanclass="code-keyword"void/spanprintRawData(spanclass="code-keyword"unsigned/spanspanclass="code-keyword"char/span*data,spanclass="code-keyword"int/spanlength,spanclass="code-keyword"int/spanmore){ spanclass="code-keyword"char/span*l_sToken=NULL; spanclass="code-keyword"char/spanl_sDelimiter[]=spanclass="code-string""/spanspanclass="code-string",\t\n"/span; spanclass="code-keyword"char/span*l_sNextToken=NULL; spanclass="code-keyword"int/spanl_nCount=spanclass="code-digit"0/span;  l_sToken=strtok_s((spanclass="code-keyword"char/span*)data,l_sDelimiter,&l_sNextToken); spanclass="code-keyword"while/span(l_sToken!=NULL) { spanclass="code-keyword"if/span(strcmp(l_sToken,spanclass="code-string""/spanspanclass="code-string"Content"/span)==spanclass="code-digit"0/span) l_nCount++;  l_sToken=strtok_s(NULL,l_sDelimiter,&l_sNextToken); }}/pre/code
伟业奥尔金:这可能更容易转换为一个字符串,并使用现有的方法。如果使用MFC,可以使用的CString和CString :: find()或者你可以使用一个std :: string和string :: find()方法,如果你不使用MFC:mbue
评论会员:游客 时间:2012/02/04
|是值计算的话?什么更多的含义?应该c为你做什么?警告-此片段只因为Word文件不重叠自己:codeprestyle="margin-removed0pt;"lang="c++"spanclass="code-keyword"int/spanprintRawData(spanclass="code-keyword"const/spanspanclass="code-keyword"char/span*data,spanclass="code-keyword"int/spanlength,spanclass="code-keyword"int/spanmore){spanclass="code-keyword"int/spani,c; printf(spanclass="code-string""/spanspanclass="code-string"-------------OneDataBegins-------------\n"/span);spanclass="code-keyword"for/span(c=i=0;i<length;){spanclass="code-keyword"if/span(spanclass="code-string"'/spanspanclass="code-string"f'/span!=data[i++])spanclass="code-keyword"continue/span;spanclass="code-keyword"if/span(length<=i)spanclass="code-keyword"break/span;spanclass="code-keyword"if/span(spanclass="code-string"'/spanspanclass="code-string"i'/span!=data[i++])spanclass="code-keyword"continue/span;spanclass="code-keyword"if/span(length<=i)spanclass="code-keyword"break/span;spanclass="code-keyword"if/span(spanclass="code-string"'/spanspanclass="code-string"l'/span!=data[i++])spanclass="code-keyword"continue/span;spanclass="code-keyword"if/span(length<=i)spanclass="code-keyword"break/span;spanclass="code-keyword"if/span(spanclass="code-string"'/spanspanclass="code-string"e'/span!=data[i++])spanclass="code-keyword"continue/span;++c;}spanclass="code-keyword"return/spanc;} spanclass="code-keyword"int/span_tmain(spanclass="code-keyword"int/spanargc,_TCHAR*argv[]){spanclass="code-keyword"const/spanspanclass="code-keyword"char/span*text=spanclass="code-string""/spanspanclass="code-string"afilebfilefilecfilefixlefilesandsoonfilefil"/span;printf(spanclass="code-string""/spanspanclass="code-string"%d"/span,printRawData(text,strlen(text),spanclass="code-digit"1/span));_gettch();spanclass="code-keyword"return/spanspanclass="code-digit"0/span;}/pre/code否则,你应该使用像Boyer-Moore快速搜索。问候:谢尔盖・Chepurin
basic_string的发现在C语言中的使用方法
一个代码示例,请参阅MSDN上{A1}

更新:修改此示例代码{A2}搜索字符串中的一个单词