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

c語言編程怎麼找單詞

發布時間: 2023-06-16 08:12:01

『壹』 c語言文件中單詞的查找與替換

天下武功,唯堅不破:下面是我完整的代碼:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

unsigned char s[100]={0};

int find(char* s)
{
char word[100] = {0};
char new_word[100] = {0};
int i = 0 ;
int match_sum = 0;
char c;
char* ptr = s;

printf("input the word your want to find out:\n");
while( (c= getchar()) !='\n')
word[i++] = c;
i = 0;
printf("input your new word:\n");
while( (c= getchar()) !='\n')
new_word[i++] = c;

printf("the word your inputed is:\t%s\n",word);
printf("the new word your inputed is:\t%s\n",new_word);

while( *ptr ){
if(*ptr == *word){
char*p = ptr;
char* pp =ptr;
char* p1 = ptr;
char* p2 = word;
char* p3 = new_word;
while( (*p2) && (*p1) ){
if( *p2++ != *p1++)
break;
}
if( (!*p2) && *(--p2) == *(--p1)){
match_sum++;
int len_old = strlen(word);
int len_new = strlen(new_word);
char s_tmp[100]={0};
char* t = s_tmp;

if( len_old < len_new){
char* tt = p1 + len_old-1;
while(*t++ = *tt++);
printf("s_tmp = %s\n",s_tmp);
while( *p3){
*p++ = *p3++;
}
t = s_tmp;
while(*t)
*(ptr+len_new ++) = *t++;
}

else {
char* tt = p1 + len_new;
while(*t++ = *tt++);
printf("s_tmp = %s\n",s_tmp);

while(*p3){
*p++ = *p3++;
}
t = s_tmp;
while(*t )
*(pp+ len_new ++) = *t++;

}
}
}
ptr++;
}

printf("there is %d word matched!\n",match_sum);

printf("your new string :\n%s\n",s);
return match_sum;
}

int input(char *s)
{
printf("input your string:\n");
int i;
unsigned char c;
char *tmp = s;

for(i = 0;i<100 && (c = getchar()) !='\n';i++)
*tmp++ = c;

printf("the string your inputed is:\n%s\n",s);

return 0;
}

int main()
{

input(s);

if( find(s) == 0 )
printf("your word doesn't exist!\n"),exit(-1);

}

『貳』 查詢單詞 C語言如何實現

你一個一個字元的來判斷.你可以設定一個變數來表示一個單詞的開始和結束.flag=0時是沒有單詞,當flag=1時一個單詞的開始.那flag=1即單詞開始時掃描的是字元繼續下個字元的,如果是非字元flag=0;到下個字元開始是flag=1;那一個單詞的開始到結束就是一個單詞了,你可以設定一個變數來記錄單詞的個數.

『叄』 C語言,,輸入一句英文單詞,,在裡面找一特定單詞並輸出位置

#include<stdio.h>
#include<string.h>
intmain()
{
chara[1024],b[256];
gets(a);
gets(b);
for(inti=0;i<=strlen(a)-strlen(b);i++){
intj;
for(j=0;j<strlen(b);j++){
if(a[i+j]!=b[j])break;
}
if(j>=strlen(b)){
printf("%d",i+1);
break;
}
}
return0;
}

『肆』 C語言 單詞檢索程序

=====================================
問題補充:二樓的是死循環運行不了啊
=====================================
實在抱歉,之前疏忽了,現在已經改好了,再試一下吧:)

=====================================
問題補充:二樓的幸苦了,仔細看了一下你的,好像有點出入,不是自己輸入文章,是打開已有文章。還得麻煩你稍稍修改下。謝謝哈
=====================================
根據你的要求,又改了一版,現在已經改好了,再試一下吧:)
給:
#include<stdio.h>
#include<string.h>
#define MAX_size 1000
int flag=1,degree=0;
void Index(char str[],char word[],int position[])
{
int i,len_str,len_word,pos_str,pos_word,k=0,word_number=0;//word_number代表短文中單詞的個數
len_word=strlen(word);
len_str=strlen(str);
for(i=0;i<len_str;i++)
{
while(str[i]==' '||str[i]==','||str[i]=='.')
i++;
word_number++; //單詞個數加一
for(pos_str=i,pos_word=0;pos_str<len_str && pos_word<len_word;pos_str++,pos_word++)
{
if(str[pos_str]!=word[pos_word])
break;
}
if(pos_word==len_word && (str[pos_str]=='\0'|| str[pos_str]==' '||str[pos_str]==','||str[pos_str]=='.')) //表明找到相等的單詞
{
position[k++]=word_number;
degree++; //相等的次數加1
flag=0;
}
else
{
while(str[pos_str]!=' '&&str[pos_str]==','&&str[pos_str]=='.'&& pos_str<len_str)
pos_str++;
}
i=pos_str;
}
}
void main()
{
char str[MAX_size],word[20],ch;
int position[100],i;

int k=0;
FILE *fp;

if((fp=fopen("a.txt","r"))!=NULL)
{
while(1)
{
ch=fgetc(fp);
if(ch==EOF) break;

str[k]=ch;
k++;
}
}

printf("請輸入要檢索的單詞: \n");
gets(word);
Index(str,word,position);
if(flag)
printf("您輸入的單詞不在短文中。\n");
else
{
printf("您輸入的單詞在短文中,它共出現 %-d 次\n",degree);
printf("出現的位置為: \n");
for(i=0;i<degree;i++)
printf("第%-2d個單詞\n",position[i]);
}
fclose(fp);
}

『伍』 c語言編程題 折半法找單詞

查找基本演算法:
折半演算法:
intSearch_Bin(intdata[],intkey,intlength)
{ // 在數組data中折半查找其值等於key的數據元素
int low,high,mid;
low=0; // 置區間初值
high=length-1;
while(low<=high){
mid=(low+high)/2;
if (key==data[mid]) // 找到待查元素
return mid;
else
if (key<data[mid])high=mid-1; // 繼續在前半區間進行查找
else
low=mid+1; // 繼續在後半區間進行查找
}
return -1;// 順序表中不存在待查元素
}

『陸』 輸入前幾個字母就能找出這個單詞的模糊查找,用c語言如何編程

給你個思路,每次查找都至少找到5個結果才結束,一個單詞,先獲取單詞部分,根據輸入長度截取單詞,只要匹配就可以。
在高級點一個單詞,先獲取單詞部分,再遍歷單詞,按照輸入的長度 每次截取那麼長再比較,
如果你會連接資料庫就不用這些代碼了,直接用LIKE %%。

『柒』 用C語言編程,如何查找一段文字(有英有漢)中的某些英文單詞,並統計其數量

//search.c
#include <stdio.h>
#include <conio.h>
main()
{
FILE*fp;
char key[20],ch;
int i,l,num=0;
if((fp=fopen("d:\\word.dat","w+"))==NULL)
{ printf("can not open file");
getch();
exit(0);
}
printf("輸入文章(按#鍵結束)_\n ");
do{
ch=getchar();
fputc(ch,fp);
}while(ch!='#');
getchar();
printf("\n輸入要查詢的關鍵字_ ");
gets(key);
rewind(fp);
ch=fgetc(fp);
while(ch!=EOF)
{
if(ch==key[0])
{
l=strlen(key);
for(i=1;i<l;i++)
{
ch=fgetc(fp);
if(ch!=key[i]) break;
}
num++;

}
ch=fgetc(fp);
}
printf("共計: %d (%s)\n",num,key);
getch();
}

『捌』 c語言如何實現在給定文檔中查找想要的單詞或句子,就好像word中一樣,50分求解!

//這里提供一個在字元串中查找字串的函數findstr(),並由運行截圖,供參考。

#include<stdio.h>

intfindstr(char*s,char*d){

char*p=s,*q;

inti;

while(*p){

i=p-s;

q=d;

while(*p==*q){p++;q++;}

if(*q=='')returni;

p=s+(++i);

}

return-1;

}

intmain(){

char*s="精品辦公水杯";

char*d="杯";

intresult=findstr(s,d);

if(result>=0)printf("【%s】在【%s】中的索引位置是:%d。 ",d,s,result);

elseprintf("沒找到。 ");

return0;

}

『玖』 c語言編程在一個一直的字元串中查找最長的單詞,

給出代碼:
#include<stdio.h>

#include<string.h>

intmain()

{

chars[128];

char*p1,*p2;

intmax=0,len=0;

printf("Inputastring:");

gets(s);//此處用get更好,get會將空格也輸入

p1=s;

for(inti=0;i<=strlen(s);i++)

{

if((s[i]=='')||(s[i]==''))//如果當前字元為空格或結束,則比較當前單詞長度是否大於最大值,再將長度復位。

{

if(len>max)

{

max=len;

p2=p1;

}

len=0;

}

else//如果當前字元非空,如果當前長度為0,則表示新單詞。

{

if(len==0)

p1=&s[i];

len++;

}

}

while(*p2&&*p2!='')

printf("%c",*p2++);

}