以界面方式输入一个英文句子,请编写程序查找出该句子中最长单词并输
答案:1 悬赏:0
解决时间 2021-02-11 09:29
- 提问者网友:无悔疯狂
- 2021-02-10 23:47
以界面方式输入一个英文句子,请编写程序查找出该句子中最长单词并输
最佳答案
- 二级知识专家网友:山鬼偶尔也合群
- 2021-02-11 00:03
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#define ENG_SIZE 100 //输入英文句子上界
int main()
{
unsigned char arr[ENG_SIZE] = {0};
unsigned char *ArrTem = NULL, *ArrFlag = NULL, *EngTem = NULL, *EngOut = NULL;
int i = 0, j = 0;
int MaxLen = 0;//最长单词的长度
gets(arr);
ArrTem = arr;
for(i = 0; i < ENG_SIZE; i++,ArrTem++)
{
if(*ArrTem == ' ' || *ArrTem == '\0')
{
if(j > MaxLen)
{
MaxLen = j;//当前单词为最长单词
ArrFlag = EngTem + 1;
}
j = 0;
if(*ArrTem == '\0')break;
}else
{
j++;
}
if(j == 0)
{
EngTem = ArrTem;//暂存当前单词头位置
}
}
EngOut = (unsigned char *)malloc((MaxLen+1) * sizeof(unsigned char));
if(EngOut == NULL)
return 0;
memcpy(EngOut,ArrFlag,(MaxLen+1) * sizeof(unsigned char));
*(EngOut + MaxLen) = '\0';
printf("%s\n",EngOut);
free(EngOut);
return 1;
}随手写了个,不是很完美,不过功能是实现了
#include<malloc.h>
#include<string.h>
#define ENG_SIZE 100 //输入英文句子上界
int main()
{
unsigned char arr[ENG_SIZE] = {0};
unsigned char *ArrTem = NULL, *ArrFlag = NULL, *EngTem = NULL, *EngOut = NULL;
int i = 0, j = 0;
int MaxLen = 0;//最长单词的长度
gets(arr);
ArrTem = arr;
for(i = 0; i < ENG_SIZE; i++,ArrTem++)
{
if(*ArrTem == ' ' || *ArrTem == '\0')
{
if(j > MaxLen)
{
MaxLen = j;//当前单词为最长单词
ArrFlag = EngTem + 1;
}
j = 0;
if(*ArrTem == '\0')break;
}else
{
j++;
}
if(j == 0)
{
EngTem = ArrTem;//暂存当前单词头位置
}
}
EngOut = (unsigned char *)malloc((MaxLen+1) * sizeof(unsigned char));
if(EngOut == NULL)
return 0;
memcpy(EngOut,ArrFlag,(MaxLen+1) * sizeof(unsigned char));
*(EngOut + MaxLen) = '\0';
printf("%s\n",EngOut);
free(EngOut);
return 1;
}随手写了个,不是很完美,不过功能是实现了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |