当前位置:首页 » 编程软件 » 编程题找单词

编程题找单词

发布时间: 2024-01-04 07:47:58

c语言编程题:(不用C++,用C!)分别找出一个英文句子里出现频率最高和最低的单词(不区分大小写)

#include<stdio.h>
#include<string.h>

typedefstruct
{
charwd[20];
intcount;
}WORDS;

voidmain()
{
charbuf[]="bigBigworldwordWord,youaredog.BigDog.";
WORDSW[20];
char*str,tmp[20]={0};
inti=0,j=0,k=0,sn=0,flag=0,maxw=0,minw=0,mxp=0,mip=0;
memset(&W,0,sizeof(WORDS)*20);

while(buf[k])
{
if(buf[k]>='A'&&buf[k]<='Z')
{
buf[k]+=32;
}
k++;
}
str=buf;
while(*str)
{
if(*str!=','&&*str!='.'&&*str!=''/*英文中没有顿号*/)
{
tmp[i++]=*str;
}else
{
tmp[i]='';
i=0;
flag=0;
for(j=0;j<sn;j++)
{
if(strcmp(tmp,W[j].wd)==0)
{
W[j].count++;
flag=1;
break;
}
}
if(!flag)
{
strcpy(W[sn].wd,tmp);
W[sn].count++;
sn++;
}
}
str++;
}
for(j=0;j<sn;j++)
{
if(j==0)
{
maxw=minw=W[j].count;
}
if(W[j].count>maxw)
{
maxw=W[j].count;
mxp=j;
}
if(W[j].count<minw)
{
minw=W[j].count;
mip=j;
}
}
printf("useMaxword[%s]use[%d]times useMinword[%s]use[%d]times ",
W[mxp].wd,W[mxp].count,W[mip].wd,W[mip].count);
}
useMaxword[big]use[3]times
useMinword[world]use[1]times
Pressanykeytocontinue

Ⅱ C语言编程 指针之寻找最长单词 I题

#include <stdio.h>
#include <ctype.h>
char *fun(char *p)
{
int i=0,maxlenwordlen=0,wordbegin=-1,maxlenwordbegin=-1;

if(p)
{
for(;*(p+i)!='\0';)
{
while(isspace(*(p+i)))
{
i++;
}
wordbegin=i;
while(*(p+i)!='\0' && !isspace(*(p+i)))
{
i++;
}
if(i-wordbegin>maxlenwordlen)
{
maxlenwordbegin=wordbegin;
maxlenwordlen=i-wordbegin;
}
}
}
if(maxlenwordlen)
{
*(p+maxlenwordbegin+maxlenwordlen)='\0';
printf("最长单词是:");
return (p+maxlenwordbegin);
}
else
{
printf("你的输入不含有任何单词!\r\n");
return p;
}
}
int main()
{
char TBuf[1024],*pword;
gets(TBuf);
pword=fun(TBuf);
while(*pword!='\0'&& *pword!=' ')
putchar(*pword++);
return 0;
}

Ⅲ C语言编程题:输入三行文字,找出其中有多少个空格和多少个单词(规定单词间以一个或多个空格分开).

#include <stdio.h>

int main()

{

char *p,str[3][255],sp=' ';

int i,j,w=0,sps=0;

for (i=0;i<3;i++) gets(str[i]);

for(i=0;i<3;i++)

{

p=str[i];

while(*p==sp) {sps++;p++} /*跳过最前面的空格*/

do {

if (*p==sp)
{
w++;sps++;p++;
while(*p==sp) {sps++;p++;} /*跳过连续的空格*/
}
else if (*p)
p++;

} while(*p);

if (*(--p)!=sp) w++; /*最后一个词后面可能没有空格*/

}

printf("有%d个单词,%d个空格 ",w,sps);

system("PAUSE");

return 0;

}


Ⅳ 一道c语言编程题,寻找字符串最长的单词并输出

这一行写错了,p1前要加个*号:
printf("%c",p1++);
要改成
printf("%c", *p1++);

看别人写的程序很难懂,不如自己重写一下,已经测试通过:

#include <stdio.h>
#include <string.h>

int main()
{
char s[128];
char *p1, *p2;
int max=0, len=0;

printf("Input a string: ");
gets(s);

p1=s;
for (int i=0; i<strlen(s); i++)
{
if (s[i]==' ') // 如果当前字符为空格,则比较当前单词长度是否大于最大值,再将长度复位。
{
if (len>max)
{
max=len;
p2=p1;
}
len=0;
} else // 如果当前字符非空,如果当前长度为0,则表示新单词。
{
if (len==0)
p1=&s[i];
++len;
}
}
while (*p2 && *p2!=' ')
printf("%c", *p2++);
}

热点内容
androidappwidget 发布:2024-11-16 23:27:18 浏览:676
图片加密上传 发布:2024-11-16 23:24:54 浏览:71
骗软件算法 发布:2024-11-16 23:21:50 浏览:646
20人团队解压拓展怎么玩 发布:2024-11-16 23:03:34 浏览:159
rsa解密算法c 发布:2024-11-16 22:41:43 浏览:27
python3log 发布:2024-11-16 22:41:34 浏览:658
手机如何热点密码是多少 发布:2024-11-16 22:41:31 浏览:350
android上传多个文件 发布:2024-11-16 22:36:24 浏览:313
苹果微信25区怎么改为安卓区 发布:2024-11-16 22:32:39 浏览:651
数控编程轻松 发布:2024-11-16 22:23:38 浏览:814