導航:首頁 > 源碼編譯 > c語言找迴文單詞演算法

c語言找迴文單詞演算法

發布時間:2022-06-10 16:56:29

A. 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);
}

B. 提取英文句子中的單詞並排序輸出 c語言

#include<stdio.h>
#include<string.h>

intGetWords(char*sentence,char*words[]);
voidSortStrings(char*strs[],intcount);

intmain()
{
charstr[200];
intnWords=0;
char*words[20];
inti;

printf("inputastring:");
gets(str);
nWords=GetWords(str,words);
SortStrings(words,nWords);
puts("output:");
for(i=0;i<nWords;i++)
{
puts(words[i]);
}
return0;
}
intGetWords(char*sentence,char*words[])
{
/******start******/
inti=0;
char*p;
p=strtok(sentence,",.");
while(p!=NULL)
{
words[i]=p;
i++;
p=strtok(NULL,",.");

}

returni;
/******end******/
}
voidSortStrings(char*strs[],intcount)
{
/******start******/
char*p;
inti,j,k;
for(i=0;i<count;i++){
for(j=i+1;j<count;j++)
{
if(strcmp(strs[i],strs[j])>0)
{
p=strs[i];
strs[i]=strs[j];
strs[j]=p;
}
}
}
/******end******/
}

C. 用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();
}

D. c語言 寫一個函數,找出一個英文句子中最長的單詞

#include<stdio.h>
#include<ctype.h>
#include<string.h>
#defineN100

char*maxlenword(charstatement[],charmaxword[]){
inti=0,j;
charword[N];
maxword[0]='';
for(i=0;statement[i];i++){
if(!isalpha(statement[i++]))continue;
--i;
j=0;
while(statement[i]&&isalpha(statement[i]))
word[j++]=statement[i++];
word[j]='';
if(strlen(maxword)<strlen(word))
strcpy(maxword,word);
}
returnmaxword;
}

intmain(){
chara[N]={''};
charb[N]={''};
printf("請輸入字元串: ");
gets(a);
maxlenword(a,b);
printf("最長單詞長為:%d ",strlen(b));
printf("最長單詞為:"%s" ",b);
return0;
}

E. 寫一條查找單詞數的C語言

#include <stdio.h>
main()
{
char c[10],d[10];
int i=0,a=0,p=1,k=0;
printf("輸入一個單詞,以空格結束\n");
while(i<10)
{c[i]=getchar();
i++;
if (c[i-1]==' ')
{printf("請輸入文章,以0結束\n");break;}}
show:
while(a<10)
{ d[a]=getchar();
if(d[a]=='0')
break;
if (d[a]==' ')
{ i=0;
while ((i<=9)&&(c[i]==d[i]))
i++;
if(i==a+1)
{ p++;k++;a=0;
goto show;}
else
{k++;
a=0;
if(k<=1000)
goto show;}

}
a++;
}
printf("一共有%d個",p);
}

這里只給出有幾個,位置就自己加一下吧,我也剛學

F. 用c語言寫 程序 找單詞 並統計單詞出現的次數 怎麼寫呀演算法是什麼求大神指導可以給現金

從源數據中分離出單詞,並將這個單詞存入數組,如果該單詞已經存在,則累加出現次數,如此這樣,直到原數據處理完畢,最後顯示分離出的單詞及其出現的次數。
我不需要錢,但需要你的網路財富。

G. 用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;)
{
while(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]==' ' )) //表明找到相等的單詞
{
position[k++]=word_number;
degree++; //相等的次數加1
flag=0;
}
else
{
while(str[pos_str]!=' ' && pos_str<len_str)
pos_str++;
}
i=pos_str;
}
}
void main()
{
char str[MAX_size],word[20];

int position[100],i;
printf("請輸入一行英文短文: \n");
gets(str);
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]);
}
}//未考慮逗號,若要考慮則加幾個判斷條件即可

H. 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);

}

I. 求c語言大神幫助!!!求 最快 演算法啊!!!從上千萬的單詞裡面找出重復的單詞,並算每個重復單詞重復次數

已通過測試,望採納。
#include <stdio.h>
#include <string.h>
main()
{ char string[100000],select[15];
int n=0;
char *p,*q;
int i,length,flag;
printf("Input a string:");
gets(string);
printf("Input the string you want to be changed:");
scanf("%s",select);
length=strlen(select);
p=q=string;
for(;*p;p++)
if(*p==select[0])
{
flag=1;
q=p;
for(i=0;i<length;i++)
{ if(*q!=select[i])
{ flag=0;
break;
}
else q++;
}
if(flag==1)
{ n++;
p=q-1;
}
}
printf("The word %s comes %d times in the string.\n",select,n);
}

閱讀全文

與c語言找迴文單詞演算法相關的資料

熱點內容
樂高機器人nxt編程軟體 瀏覽:583
linuxx264編譯 瀏覽:343
華夏銀行網銀盾用什麼app 瀏覽:583
單片機棧區 瀏覽:64
直流馬達如何連接5v單片機 瀏覽:261
後綴為win的文件怎麼解壓 瀏覽:802
壓縮包解壓後為什麼一張白紙 瀏覽:585
伺服器和雲盒子 瀏覽:172
python畫cad電氣圖 瀏覽:419
三菱plcfx3sa編程電纜 瀏覽:314
山西視頻加密防盜 瀏覽:839
華為mml命令查看用戶量 瀏覽:907
場論朗道pdf 瀏覽:373
如何使用qtquick編譯器 瀏覽:50
山西高配伺服器雲伺服器 瀏覽:744
為什麼編譯按f9沒反應 瀏覽:122
購物app都適合買什麼東西 瀏覽:277
savetxt函數python 瀏覽:577
編譯器小端改大端 瀏覽:642
華為安卓哪些文件夾能刪除 瀏覽:406