当前位置:首页 » 编程语言 » 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++);

}