我刚做了一关于英文句子里面每个单词平均字长的。与你问题很近。
#include "stdioh"
#include <stringh>
#include "ctypeh"
#define MAX 1000000
char buf[MAX],s[MAX];
char p[MAX];
int main(){
int n = 0;
int m = 1;
int cout = 0;
float ave = 0;
int i;
fgets(buf,sizeof(s),stdin);
n = strlen(buf)-1;//字符串的末尾有一个结束字符
for( i =0;i < n; i++)
if(isalpha(buf[i]) == 0 && isalpha(buf[i+1])!=0)
{
m ++;
}
printf("%d\n\n",m);
for(i = 0; i < n; i++)
{
if(isalpha(buf[i]) !=0)
cout++;
}
printf("%d\n\n",cout);
ave = cout /m;
printf("%f",ave);
return 0;
}
#include <stdioh>
int main()
{
char s[100];
FILE in=fopen("文件名","r");
if(!in)
{
perroe("文件名");
return 0;
}
while(fgets(s,100,in))
{
对读入的字符串做处理
}
fclose(in);
return 0;
}
让人分析代码,至少要把代码贴出来运行啊,总不可能抄写你的代码吧!
gets和scanf()的区别就是前者接收空格、制表符Tab和回车等,遇见EOF停止!而后者遇见空格、制表符Tab和回车等就停止;
数组只能存1234\0;后面的56789都是越界的;为什么到8没有关系,而是9崩溃是因为你运气好,空闲内存还有;第9个刚好访问了其他程序的内存!
而为什么puts和printf可以打印到8是因为再8后面才遇到'\0';
为什么for只输出4个数;是因为你用的32位编译器,所以sizeof(st)==4;如果你用64的编译器,那么sizeof(st)==8;因为指针大小再32是4个字节,64位8个字节!
好了,老板的4个问题都帮你分析了!给财富值200;
以上就是关于C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词。全部的内容,包括:C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词。、C++如何实现每次从文件中读出固定长度的字符串、C语言关于gets函数输入串长度问题!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)