C语言 单词检索程序

C语言 单词检索程序,第1张

=====================================

问题补充:二楼的是死循环运行不了啊

=====================================

实在抱歉,之前疏忽了,现在已经改好了,再试一下吧:)

=====================================

问题补充:二楼的幸苦了,仔细看了一下你的,好像有点出入,不是自己输入文章,是打开已有文章。还得麻烦你稍稍修改下。谢谢哈

=====================================

根据你的要求,又改了一版,现在已经改好了,再试一下吧:)

给:

#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=0i<len_stri++)

{

while(str[i]==' '||str[i]==','||str[i]=='.')

i++

word_number++//单词个数加一

for(pos_str=i,pos_word=0pos_str<len_str &&pos_word<len_wordpos_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=0i<degreei++)

printf("第%-2d个单词\n",position[i])

}

fclose(fp)

}

老大,

首先,这一行

int charNumbers=s.lenght()

s.length(),不是lenght()

s.getChars(),不是s.getchar

最重要的一点,你把main方法写在类定义的外面……

public class d

{

public static String reverse(String s)

{

int charNumbers=s.length()

char[] chars=new char[charNumbers]

s.getChars(0,charNumbers,chars,0)

String result=" "

for(int i=charNumbers-1i>=0i--)

{

result=result+chars[i]}

return result

}

public static void main(String args[])

{

String word ="noon"

if(word.equals(reverse(word)))

{System.out.println(word+"是一个回文单词!")}

else

{System.out.println(word+"不是一个回文单词!")}

}

}

#include<iostream.h>//包含了string.h

int main(){

char a[20],b[20] //一个用于输入,一个用于反转

bool t=false //标志状态

while(true){ //死循环,便于测试

gets(a)//获取一串字符

for(int i=0i<strlen(a)i++){ //将a反向给b

b[strlen(a)-i-1]=a[i]

}

b[strlen(a)]='\0' //因为strlen自动删除了末尾\0所以添加一个

puts(b) //输出

for(int i=0i<strlen(a)i++){ //检测相等

if(a[i]==b[i])t=1

else {t=0break}

}

if(t)printf("right.\n")

else printf("wrong.\n")

}

return 1

}

虽然多用了一个字符串,但是这样可以熟练使用字符串函数,不要贪便宜的做,加油!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11229564.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存