C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词。

C语言编程求一个英文句子中的单词数和最长单词的位置、长度及输出这个单词。,第1张

我刚做了一关于英文句子里面每个单词平均字长的。与你问题很近。

#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函数输入串长度问题!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9872952.html

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

发表评论

登录后才能评论

评论列表(0条)

保存