想不懂了,这个怎么做啊
感觉好麻烦,不知道有没有什么好的方法
希望有人可以解答
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#define MAX_LEN 500
int main()
{
char str[MAX_LEN+1]; //+1是为了留一个位置给字符串结尾的'\0'
char longest_word[MAX_LEN+1]; //最长单词
int longest_len = 0; //最长单词长度
int len = 0; //当前单词长度
int i; //循环计数器
int start_pos = 0; //最长单词在字符串中的起始位置
int end_pos = 0; //最长单词在字符串中的结束位置
int word_start_pos = 0; //当前单词在字符串中的起始位置
int word_end_pos = 0; //当前单词在字符串中的结束位置
printf("请输入一行字符(不超过500个):\n");
fgets(str, MAX_LEN+1, stdin); //从标准输入读入一行字符
for(i=0; i<=strlen(str); i++) //循环遍历字符串,包括最后一个'\0'
{
if(isalpha(str[i]) || str[i]=='\'') //如果是字母或',说明是单词中的一部分
{
if(len==0) //如果当前没有单词在处理中,说明当前是一个新单词的开始
{
word_start_pos = i;
}
len++; //单词长度加1
}
else //否则说明当前字符不是单词中的一部分
{
word_end_pos = i-1; //当前单词的结束位置是前一个字符
if(len>longest_len) //如果当前单词比最长单词还长,更新最长单词
{
longest_len = len;
start_pos = word_start_pos;
end_pos = word_end_pos;
}
len = 0; //重置当前单词长度
}
}
//输出最长单词
for(i=start_pos; i<=end_pos; i++)
{
printf("%c", str[i]);
}
printf(" ");
//查找是否有其他与最长单词长度相同的单词
len = 0;
for(i=0; i<=strlen(str); i++)
{
if(isalpha(str[i]) || str[i]=='\'')
{
if(len==0)
{
word_start_pos = i;
}
len++;
}
else
{
word_end_pos = i-1;
if(len==longest_len && word_start_pos!=start_pos) //如果当前单词长度和最长单词一样,并且不是最长单词本身
{
for(i=word_start_pos; i<=word_end_pos; i++)
{
printf("%c", str[i]);
}
printf(" ");
}
len = 0;
}
}
return 0;
}
#include <stdio.h>
#include <string.h>
int main() {
char str[1000];
int max_count = 0;
char max_word[1000] = {0};
int i, j, k, count, len;
gets(str);
len = strlen(str);
i = 0;
while (i < len) {
count = 0;
j = i;
while (str[j] != ' ' && j < len) {
if (str[j] >= 'a' && str[j] <= 'z') {
count++;
}
j++;
}
if (count > max_count) {
max_count = count;
strncpy(max_word, &str[i], j-i);
max_word[j-i] = '\0';
}
i = j + 1;
}
printf("%s\n", max_word);
return 0;
}
又是几天未见哈,前天出去玩了,昨天休息了一天才缓过劲来,今天开始又要投入辛勤的劳动中去,时间还真是过得飞快,转眼2021就要过去了,不知道大家今年的愿望有没有实现呢,说到这就有人开心有人难过了,难过的人有是因为学期要结束了,但自己课设还没做的吗,嘿嘿,肯定有,今天就继续分享课设大作业,上次的学生成绩管理系统不知道大家有没有掌握呢,希望大家都可以顺利的完成自己的课设作业吧,今天分享的是“通讯录管理系统”,希望大家可以耐心、用心的看完并去动手去实现他。