⑴ C語言如何實現同時滿足多條件匹配過濾問題
我現在上抄不了雲盤,能否將你的問題襲描述一下?
多條件匹配過濾?是需要判斷多個條件同時成立或不成立的情況嗎?
if(條件1 && 條件2 && 條件3) 用 && 表示邏輯與的關系,表示三個條件同時為真的時候,if 判斷結果才為真,其中任何一個條件不滿足 則if 判斷結果為假,將不執行if 後面的代碼或代碼段。
if(條件1 || 條件2 || 條件3) 用 || 表示邏輯或,即三個條件只要有一個為真,則if 判斷結果就為真,只有三個條件同時為假的時候,if 判斷為假。
根據需要選擇 &&、|| ,或者混合使用都可以。
// 三個條件同時為真時,if 判斷結果為真,執行大括弧內代碼;否則為假if(condition1 && condition2 && condition3){ ; // 需要執行的代碼}// 三個條件的任意一個或多個條件為真,if 判斷結果為真,否則為假if(condition1 || condition2 || condition3){ ; // 需要執行的代碼}
以上所述,你參考一下,如果不是這個問題,歡迎繼續提問。
請採納。
⑵ 管道與過濾風格的軟體體系結構
我是張建 這題不考了
⑶ C語言如何實現含有多條匹配條件過濾問題
#include<stdio.h>
intkeyWords[11][4]=
{{1,2,3,6},
{1,2,3,8},
{1,2,3,9},
{2,5,6,8},
{2,6,7,8},
{5,6,7,9},
{6,8,9,10},
{8,9,10,11},
{6,7,8,13},
{6,10,11,15},
{9,10,11,15}
};
intcomp(intline[],intkey[])
{
inti=0,j=0;
do{
if(line[i]==key[j])
{
if(j==3)
return1;
else
i++,j++;
}
if(line[i]>key[j])
return0;
if(line[i]<key[j])
i++;
}while(i!=6&&j!=4);
return0;
}
intmatchTimes(intline[])
{
inttimes=0;
inti;
for(i=0;i<11;i++)
{
if(comp(line,keyWords[i])==1)
times++;
}
returntimes;
}
intmain(void)
{
intline[6];
intt,i;
intkey[]={1,2,3,6};
while(scanf("%d,%d,%d,%d,%d,%d ",line,line+1,line+2,line+3,line+4,line+5)!=EOF)
{
t=matchTimes(line);
if(t>=1&&t<=5)
{
for(i=0;i<5;i++)
printf("%d,",line[i]);
printf("%d ",line[i]);
}
}
return0;
}
我是用重定向讀寫文件的,你輸入輸出的地方改一下就行(我寫數字的時候前面沒加多餘的0)
⑷ c語言過濾注釋問題
#include<stdio.h>
intmain()
{
FILE*fp1,*fp2;
charch1,ch2,str[100];
if((fp1=fopen("test1.c","r"))==NULL)
{
("Can'topenthefile!");
exit(0);
}
else
{
if((fp2=fopen("test2.c","w"))==NULL)
{
printf("Can'topenthefile!");
exit(0);
}
else
{
/*兩個文件都正常打開*/
ch1=fgetc(fp1);
while(!feof(fp1))
{
/***************mychangebeginshere******************/
if(ch1=='/')
{
/*將當前字元賦給ch2,ch1繼續讀取下一個字元來做判斷*/
ch2=ch1;
ch1=fgetc(fp1);
/*繼續判斷ch1所讀取到的字元*/
if(('/'==ch1))
{
/*已經到文件尾了*/
if(feof(fp1))
{
break;
}
/*注釋格式為//,將該行讀取出來,讓文件指針偏移到注釋行的下一個字元*/
fseek(fp1,-2,SEEK_CUR);
fgets(str,sizeof(str),fp1);
ch1=fgetc(fp1);
}
elseif('*'==ch1)
{
/*已經到文件尾了*/
if(feof(fp1))
{
break;
}
/***注釋格式為/**/,循環讀取直至注釋結束符*/****/
do
{
ch2=ch1;
ch1=fgetc(fp1);
}while((('*'!=ch2)||('/')!=ch1)&&(!feof(fp1)));
/*注釋部分已經讀取完畢,ch1繼續讀取其下一個非注釋字元,並寫入fp2*/
ch1=fgetc(fp1);
fputc(ch1,fp2);
}
else
{
/*若不是注釋符,則將原先讀取到的字元寫入文件中*/
fputc(ch2,fp2);
}
}
else
{
/*若沒遇到,正常復制,繼續讀取下一個字元*/
fputc(ch1,fp2);
ch1=fgetc(fp1);
}
/****************mychangeendshere*******************/
}
}
}
fclose(fp1);
fclose(fp2);
return0;
}
小夥子 自己測試一下吧 應該是可行的
⑸ c語言如何過濾去非16進制的字元
||#include<stdio.h>
void main()
{
char str[100];
int t,i=0;
printf("請輸入一個字元串\n");
gets(str);
for(t=0;str[t]!版='\0';t++)
if(('A'<=str[t]&&str[t]<='F')||權('a'<=str[t]&&str[t]<='f')||('0'<=str[t]&&str[t]<='9'))
str[i++]=str[t];
str[i]=0;
printf("%s\n",str);
}
⑹ C語言如何實現滿足多條件匹配簡單過濾問題
||
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#defineMAX11
#defineMIN1
#defineNUM6
intdata[NUM];
intcheck(void)
{
inti;
intj;
intret;
ret=0;
for(i=j=0;i<NUM;i++)
{
if(data[i]==1||[i]==2||data[i]==3)
{
j++;
}
}
if(!(j==1||j==2))
{
returnret;
}
for(i=j=0;i<NUM;i++)
{
if(data[i]==2||data[i]==6||data[i]==8||data[i]==9)
{
j++;
}
}
if(!(j>=1&&j<=3))
{
returnret;
}
for(i=j=0;i<NUM;i++)
{
if(data[i]==1||(data[i]>=6&&data[i]<=11))
{
j++;
}
}
if(!(j>=0&&j<=2))
{
returnret;
}
ret=1;
returnret;
}
voiddisplay(void)
{
inti;
for(i=0;i<NUM;i++)
{
printf("%d",data[i]);
}
printf(" ");
}
intfuckagain(intlol)
{
if(data[lol]==lol+MAX-NUM+1)
{
returnfuckagain(lol-1);
}
else
{
data[lol]++;
returnlol;
}
}
voidfuck(void)
{
inti;
i=fuckagain(NUM-1);
if(i==NUM-1)
{
return;
}
if(data[i]<MAX-NUM+1+i)
{
for(;i<NUM-1;i++)
data[i+1]=data[i]+1;
}
}
intmain(void)
{
inti,j;
j=0;
for(i=0;i<NUM;i++)
{
data[i]=i+MIN;
}
if(check())
{
display();
j++;
}
for(i=1;data[0]<MAX-NUM+1;i++)
{
fuck();
if(check())
{
display();
j++;
}
}
printf("tatal=%d,matchcondition=%d ",i,j);
}
⑺ c 字元串過濾行
先把文本的內容逐行讀取,利用字元串匹配函數查找該行是否有"file",無則輸出到out.txt文件,有則忽略不計
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
boolHasfile(char*str)
{
if(strlen(str)<=4)
returnfalse;
for(inti=0;i<=strlen(str)-4;++i)
{
if(strncmp("file",str+i,4)==0)
returntrue;
}
returnfalse;
}
intmain()
{
chartxtname[50]={'