读入一系列字符数组,寻找连续重复出现的单词。程序应该找出满足以下条件的单词的输入位置:该单词的后面紧跟着再次出现自己本身。跟踪重复次数最多的单词及其重复次数。输出重复次数的最大值,若没有单词重复则输出说明信息。例如,如果输入是:
how , now now now brown cow cow 则输出应表明“now”这个单词出现了三次。
“该单词的后面紧跟着再次出现自己本身”怎么理解?大体说说思路,你得有个算法判断什么样的字符串算一个“单词”,可根据ASCII码,单词中可以有大小写字母,空格(\r,\t,\n),其他字符(&、*、……)都可以分隔单词。
输入一个字符串,程序算法切割为“单词”,存入链表或者数据库,再读入之后查询链表或者数据库,记录重复次数 。
将一个单词定义为不包含空白字符(即没有空格、制表符或者换行符)的一系列字符,比如“googoogxf”和"s2t2"都是单词(单词中可以有数字,linux 下 vim的查找功能就基本以这种方法)。每个单词以首次遇到的非空白字符开始,在下一个空白字符出现时结束。检测空白字符比较简单的是用 ctype.h 中的isspace()函数。
========================================================
我刚才理解有错误 贴出自己的代码,函数功能,输入一串字符串,统计其中有重复的单词并输出重复次数,间隔的重复情况未考虑,
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
char input[200]; //存储从键盘输入的内容
char *str = " \n"; //以空格或者换行符(最后一个回车)割字符
char *word_buf[50]; //指针数组 存放各个单词
printf("请输入字符串,各字符串以空格分隔:\n");
if(fgets(input, 200, stdin) == NULL) //从标准输入读入字符存储到input
{
perror("fgets"); //读入出错则返回 结束程序
return 0;
}
int i = 0, word_count = 1; //word_count为单词重复数
word_buf[i] = strtok(input, str);
while(word_buf[i] != NULL)
{
i++;
word_buf[i] = strtok(NULL, str); //strtok函数切割字符串
if(word_buf[i] == NULL) //如果到最后的换行符,退出循环,执行最后的if语句
{
break;
}
if(strcmp(word_buf[i],word_buf[i-1]) == 0) //判断当前单词跟上一个单词是否相等
{
word_count++; //如果当前单词跟上一个单词相同 则word_count累加
}
else
{
if(word_count >= 2) //如果不相等 则判断之前的单词是否有重复,有则打印
{
printf("重复单词:%s 该单词最大连续重复数:%d\n",
word_buf[i-1],word_count);
}
word_count = 1;//由于当前单词跟上一个单词不相等,故重复数统计变量重新设置
}
}
if(word_count >= 2) //退出循环后的判断语句,\n之前的单词有重复则打印
{
printf("重复单词:%s 该单词最大连续重复数:%d\n",
word_buf[i-1],word_count);
}
return 0;
}
用c语言编写的代码程序
c语言的源程序语法结构如下:include<stdio.h>\/\/预处理语句 \/* 自定义函数1*\/ \/* 自定义函数2*\/ int main(){ \/\/main()主函数执行调用以上定义的函数的顺序 return 0;\/\/执行完毕 退出 } 示例如下:include <stdio.h> int main(){ printf("welcome to c language!!!\\n");return 0;} ...
如何用c语言编写程序,输出正数个数?
1、首先打开Dev-c++软件,点击“新建源代码”,如下图所示。2、然后在打开的窗口中,输入代码,如下图所示。3、编写完程序之后,点击运行即可得出结果。最后的结果是根据自己输入的10个整数值为基础来进行运行的,每次输入的数组值不同,结果也会不同。4、其中:for表示循环结构,i 表示循环条件,在编...
怎么用C语言编写一个简单计算器程序。
1、首先在打开的C语言软件窗口中,在Main函数的上方,写上阶乘函数的框架,如下图所示。2、然后定义一个变量【result】,如下图所示。3、然后输入if判断语句,就可以写下程序的关键语句,如下图所示。4、接下来就可以调用输出,如下图所示。5、最后点击运行,如下图所示,就可以运行测试。
怎么用c语言编写一个小程序?
1、首先打开DEV C++软件,点击“新建源代码”,在编辑页面输入以下代码。2、因为题目要求我们先输入一个整数,所以在定义变量时,就应该将其定义为整数型,注意,在输入,输出函数中,整数型对应的是“%d”。3、接下来就要对输入的整数进行判断,在C语言中,if是判断语句,所以用它来对整数进行判断。if...
如何用C语言编写一个循环程序?
1、首先,定义两个整型变量,控制二维数组的输出。2、接着,给二维数组n[3][4]初始化不同的数值。3、用二重循环,输出数组中的各个数值。4、二维数组可以用大括号括起来的数字直接赋值,内层大括号中每对表示一行,每对内层大括号中的值表示一行中的各数值。5、运行程序,可以看到二维数组中的值,...
怎么编写C语言程序,如:Helloworld的?
1、点击确定即可,创建出一个helloworld.c的小程序,然后我们就可以编写我们的Hello World小程序了。此时就需要我们的VC++ 6.0来编译此程序,编译无错误才运行此程序,编译按钮和运行按钮如下图的红色箭头处:2、或者可以点击组建工具栏下的编译菜单项,然后再点击执行菜单项,也有快捷键,按Ctrl+F7编译...
怎样用C语言编写一个程序?
具体公式如下:include <stdio.h> void main(){ float c,f;printf("请输入一个华氏温度\\n");scanf("%f",&f);c=(f-32)*5\/9;printf("它的摄氏温度为:%.2f",c);}
如何用C语言编写一个简单的程序!
1、鼠标左键双击c语言软件,打开,打开后界面如图,点击关闭即可 2、点击上方程序窗口左上角的文件,选择新建 3、在打开的窗口中选择文件,下边一般是第四个 c++Source file,输入文件名(hellw.c),一定要以“.c”为后缀结尾 4、进入编辑页面在,页面编辑源代码就可以 includestdio.h void main()...
如何用C语言编写一个按大小顺序输出数据的程序?
C语言程序如下:include<stdio.h> intmain(){ inta,b,c,t;printf("请输入三个数:");scanf("%d%d%d",&a,&b,&c);if(a>b){ t=a;a=b;b=t;} if(a>c){ t=a;a=c;c=t;} if(b>c){ t=b;b=c;c=t;} printf("从小到大的顺序是:%d %d %d\\n",a,b,c);return0;} ...
c语言编程,用while语句编写一个程序
代码为:const double pi=3.14;double a=10;while(a<=180){ printf("角度:%6d\\t,正弦:%10.6f\\t,sin(a*pi\/180),10.6f\\n " a,余弦:cos(a*pi\/180)),a=a+10;} 输出结果如下图: