當前位置:首頁 » 編程語言 » c語言如何查找關鍵字
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言如何查找關鍵字

發布時間: 2022-05-06 20:49:27

⑴ 幫忙用c語言寫一個關於查找關鍵字的程序~~~~~

#include<stdio.h>
#include<string.h>
ha(FILE *fp,char *y)
{char c,k[20];
int i=0;
if(feof(fp))
return 0;
while(!feof(fp))
{c=fgetc(fp);
if(c!='\n')
{k[i]=c;
i++;}
else {k[i]='\0';
strcpy(y,k);
return 0;}
}
}
sho(FILE *fp,char *a)
{FILE *fp1;
int i=0,k=0;
char c;
while(!feof(fp))
{c=fgetc(fp);
if(c==*(a+i))
i++;
else i=0;
if(i==strlen(a))
{k++;
i=0;}
}
return k;
}
main()
{FILE *fp2,*fp1,*fp3;
char a[20];
int i=0;
fp1=fopen("key.txt","r");
fp3=fopen("Out.txt","w");
while(!feof(fp1))
{fp2=fopen("old.txt","r");
if(ha(fp1,a))
return 1;
i=sho(fp2,a);
printf("%d",i);
getch();
if(i!=0)
{fprintf(fp3,"%s:%d\n",a,i);
printf("%s:%d\n",a,i);
i=0;}
fclose(fp2);
}
}
文件KEY.TXT的關鍵字格式為:
int
char
FILE
if

關鍵字的格式要加回車

⑵ c語言怎麼從文件查詢關鍵字,然後輸出關鍵字所在的那一行

一般關鍵字在你定義的類型變數 就是最明顯的關鍵字 如int float char等 要是輸出的話 相對應的輸出該變數對應的值如:int a=5;printf(「%d「,a);這樣輸出就是該整形變數的值 記住所有的符號要在英文格式下輸入代碼 否何會編譯錯誤 純手打 望採納

⑶ C語言中如何在文件內查找關鍵字並替換

獲取關鍵字,得到它的長度,然後從操作文件中讀取這么長的字元串,進行比較,把
文件指針
指向下一個字元(注意,要一個字元一個字元的向下進行),這樣就可以把需要的關鍵字找出來,如果想替換的話,把讀取出的數組改成想要得再寫入,最後別忘記fclose();

⑷ c語言的關鍵字有哪些

C語言的關鍵字共有32個,根據關鍵字的作用,可分其為四類:
數據類型關鍵字(12個);

char:聲明字元型變數或函數
int: 聲明整型變數或函數
short:聲明短整型變數或函數
long:聲明長整型變數或函數
float:聲明浮點型變數或函數
double:聲明雙精度變數或函數
unsigned:聲明無符號類型變數或函數
signed:聲明有符號類型變數或函數
enum:聲明枚舉類型
struct:聲明結構體變數或函數
union:聲明共用體(聯合)數據類型
void :聲明函數無返回值或無參數,聲明無類型指針
控制語句關鍵字(12個);

循環語句
for:一種循環語句
do:循環語句的循環體
while:循環語句的循環條件
continue:結束當前循環,開始下一輪循環
break:跳出當前循環
條件語句
if: 條件語句
else :條件語句否定分支(與 if 連用)
goto:無條件跳轉語句
開關語句
switch:用於開關語句
case:開關語句分支
default:開關語句的「其他」分支
返回語句
return:子程序返回語句(可以帶參數,也看不帶參數)
存儲類型關鍵字(4個);
extern:聲明變數在其他文件中聲明
static :聲明靜態變數
register:聲明寄存器變數
auto :聲明自動變數,一般不使用
其它關鍵字(4個);
const :聲明只讀變數
sizeof:計算數據類型長度
typedef:給數據類型取別名
volatile:說明變數在程序執行中可被隱含地改變。

⑸ c語言中如何從一個字元串中查詢是否有給定的關鍵詞!

  1. strstr() 函數搜索一個字元串在另一個字元串中的第一次出現。找到所搜索的字元串,則該函數返回第一次匹配的字元串的地址;如果未找到所搜索的字元串,則返回NULL。
    包含文件:string.h
    函數名: strstr
    函數原型:
    extern char *strstr(char *str1, const char *str2);
    語法:
    strstr(str1,str2)
    str1: 被查找目標string expression to search.
    str2: 要查找對象The string expression to find.
    返回值:若str2是str1的子串,則先確定str2在str1的第一次出現的位置,並返回此str1在str2首位置的地址。;如果str2不是str1的子串,則返回NULL。

  2. 常式:

    #include<stdio.h>
    #include<string.h>
    intmain(){
    constchar*a="abcdefgh";
    constchar*b="abc";
    if(strstr(a,b)!=NULL)printf("found! ");
    elseprintf("notfound! ");
    return0;
    }

⑹ 輸入任意多個關鍵字,按各種查找方法查找某個關鍵字。(用C語言描述)

length().substr(i。功能只要實現C++字元串類的求長度和取子字元串
讀入字元串S
for(int
i=0;i++)
if(S;S;i<。
自己寫個字元串類哈,因為關鍵字都列出來了)
把你輸入的關鍵字讀入。給一思路
你知道查找的關鍵字的長度L吧(很明顯題目不難,L)

⑺ C語言鏈表關鍵字檢索

//#include "stdafx.h"//vc++6.0加上這一行.
#include "stdio.h"
#include "string.h"

struct A{
char str[20];
struct A* next;
}
void main(void){
char x;
struct A *p=head;//head是鏈表頭指針,必須是已知的
printf("Enter the characters to be retrieved:ch=");
x=getchar();
fflush(stdin);
for(;*p;p=p->next){
if(strchr(p->str,x))
printf("%s ",p->str);
}
printf("\n");
}

⑻ 在C語言中什麼叫關鍵字,怎麼用

C語言的關鍵字共有32個,根據關鍵字的作用,可分其為數據類型關鍵字、控制語句關鍵字、存儲類型關鍵字和其它關鍵字四類。

1、數據類型關鍵字(12個):

(1) char :聲明字元型變數或函數

(2) double :聲明雙精度變數或函數

(3) enum :聲明枚舉類型

(4) float:聲明浮點型變數或函數

(5) int: 聲明整型變數或函數

(6) long :聲明長整型變數或函數

(7) short :聲明短整型變數或函數

(8) signed:聲明有符號類型變數或函數

(9) struct:聲明結構體變數或函數

(10) union:聲明聯合數據類型

(11) unsigned:聲明無符號類型變數或函數

(12) void :聲明函數無返回值或無參數,聲明無類型指針(基本上就這三個作用)

2、控制語句關鍵字(12個):

A循環語句 :(1) for:一種循環語句(可意會不可言傳) (2) do :循環語句的循環體 (3) while :循環語句的循環條件 (4) break:跳出當前循環 (5) continue:結束當前循環,開始下一輪循環

B條件語句: (1)if: 條件語句 (2)else :條件語句否定分支(與 if 連用) (3)goto:無條件跳轉語句

C開關語句: (1)switch :用於開關語句 (2)case:開關語句分支 (3)default:開關語句中的「其他」分支

D return :子程序返回語句(可以帶參數,也看不帶參數)

3 、存儲類型關鍵字(4個):

(1)auto :聲明自動變數 一般不使用 (2)extern:聲明變數是在其他文件正聲明(也可以看做是引用變數) (3)register:聲明積存器變數 (4)static :聲明靜態變數

4、其它關鍵字(4個): (1)const :聲明只讀變數 (2)sizeof:計算數據類型長度 (3)typedef:用以給數據類型取別名(當然還有其他作用 (4)volatile:說明變數在程序執行中可被隱含地改變。

(8)c語言如何查找關鍵字擴展閱讀:

C語言簡潔、緊湊,使用方便、靈活。ANSI C標准C語言共有32個關鍵字,9種控制語句,程序書寫形式自由,區分大小寫。把高級語言的基本結構和語句與低級語言的實用性結合起來。 C 語言可以像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元。

語法限制不太嚴格,程序設計自由度大:雖然C語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。

允許直接訪問內存地址,對硬體進行操作。由於C語言允許直接訪問內存地址,可以直接對硬體進行操作,因此它既具有高級語言的功能,又具有低級語言的許多功能,能夠像匯編語言一樣對位、位元組和地址進行操作,而這三者是計算機最基本的工作單元,可用來寫系統軟體。

生成目標代碼質量高,程序執行效率高:一般只比經過高效優化的匯編程序生成的目標代碼效率低10へ20%。

適用范圍大,可移植性好:C語言有一個突出的優點就是適合於多種操作系統,如DOS、UNIX、windows 98.windows NT;也適用於多種機型。C語言具有強大的繪圖能力,可移植性好,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫,它也是數值計算的高級語言。

參考資料來源:網路C語言關鍵字

⑼ C語言如何查找並輸出數組中含有某一關鍵字的所有元素

strcmp 是整個字元串比較的,不能用 strcmp,可以用 strstr() 函數,strstr 是在一個字元串中查找一個子串,如果查到返回子串在字元串的位置,查找不到返回NULL。例如:

constchar*p=strstr("清炒土豆絲","土豆");

⑽ C語言用二分法查找關鍵字

#include<stdio.h>
#include<stdlib.h>
#define Size 15

int main()
{
int binarySearch(int [], int, int, int);
void printHeader(void);
void printRow(int [],int,int,int);

int a[Size],i,key,element;
for(i=0;i <= Size-1;i++)
a[i]=2*i;

printf("Enter a number between 0 and 28:");
scanf("%d",&key);
printHeader();

element=binarySearch(a, key, 0, Size-1);
if(element!=-1)
printf("\n%d found in array element %d !\n",key,element);
else
printf("\n%d is not found!\n",key);

system("pause");
}

void printHeader()
{
int i;
printf("\nSubscripts:\n");
for(i=0;i<=Size-1;i++)
printf("%3d",i);
printf("\n");
for(i=1;i<=4*Size;i++)
printf("-");
printf("\n");
}

int binarySearch(int array[], int searchKey, int low, int high)
{
void printRow(int array[],int low,int middle,int high);
int middle;

while(low<=high){
middle=(low+high)/2;
printRow(array,low,middle,high);
if(searchKey==array[middle])
return middle;
else if(searchKey<array[middle])
high=middle-1;
else
low=middle+1;
}

return -1;
}

void printRow(int array[],int low,int middle,int high)
{
int i;
for(i=0;i<=Size-1;i++)
if(i<low||i>high)
printf(" ");
else if(i==middle)
printf("%3d*",array[i]);
else
printf("%3d",array[i]);
printf("\n");
}

效率分析:線型查找擺脫了數組排序的約束,不足之處是不適合大型數據查找,並且查找方法比較老套,如果要找的數是數組中最後一個數n,那麼搜索從0開始,一直檢索到n,要經過n次遍歷,時間復雜度:O(n),而二分查找法中如果查找關鍵字小於數組中間的元素,就查找數組的頭半部分,否則查找數組的後半部分,時間復雜度:O(log2N),如果在指定子數組中還沒有查找到關鍵字,就再把子數組折半,反復進行這種查找,直到要查找的關鍵字等於子數組中間的元素,或沒有找到關鍵字為止。在最壞的情況下,用二分法查找有1024個元素的數組也只需要比較10次,即用2除1024,連續除10次得到1為止,如果有1048576(2的20次方)個元素,用二分法只要比較20次就可以找到要查找的元素,而用簡單的線型查找則需要進行2的20次方查找,可見二分法比線型查找法的效率要高得多,對10億個元素的數組來說,平均比較5億次和30次簡直是天壤之別!所以掌握二分法對在龐大的數組庫處理是很有效的!