问题补充:二楼的是死循环运行不了啊
=====================================
实在抱歉,之前疏忽了,现在已经改好了,再试一下吧:)
=====================================
问题补充:二楼的幸苦了,仔细看了一下你的,好像有点出入,不是自己输入文章,是打开已有文章。还得麻烦你稍稍修改下。谢谢哈
=====================================
根据你的要求,又改了一版,现在已经改好了,再试一下吧:)
给:
#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.hint 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
}
虽然多用了一个字符串,但是这样可以熟练使用字符串函数,不要贪便宜的做,加油!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)