qq_36424540 2017-03-07 15:34 采纳率: 87.5%
浏览 2682
已采纳

找出语句中中最长的单词

#include
#include
void function(char str[]); /*函数声明在外面*/
void main()
{
char str[100];
printf("请输入一行字符串:");
gets(str);
str[strlen(str)]='#';
function(str);
}

void function(char str[])
{
int i=0,j=0,k=0;
char str1[30][30],str2[100];
int state = 0; //设制一个状态记录str[i]是不是字母, 0表示不是 1 表示是

for(i=0;str[i]!='\0';i++)
{
if((str[i]>='a' && str[i]<='z') || (str[i]>='A' && str[i]<='Z'))
{
str1[j][k]=str[i];
k++;
str1[j][k] ='\0'; /*字符串都以'\0'结尾所以每次都保持str1[i]是一个字符串, 复制给str2就不会出现少'\0'的情况啦*/
state = 1; //及时设置状态
}
else
{
if(state == 1) {j++;} //仅仅让单词存进去 别的字符就别存到str1中了
state = 0; //及时设置状态
k=0;
}
}
strcpy(str2,str1[0]);

for(i=1;i {
if(strlen(str1[i])>strlen(str2)) /*总是让str2保持是最长的字符串*/

strcpy(str2,str1[i]);
}
printf("该字符串中最长的单词是:%s\n",str2);
}
这段代码中为什么需要str[strlen(str)]='#'的目的是什么?

  • 写回答

1条回答 默认 最新

      报告相同问题?

      相关推荐 更多相似问题

      悬赏问题

      • ¥15 我在wordpress里安装Ultimate menber 插件之后进行测试,点击注册之后发现网页打不了
      • ¥20 问个简单的数据结构问题
      • ¥20 kinect 使用 unity 开发使用手势旋转相机
      • ¥20 一个关于人脸识别的实训报告
      • ¥50 LoopyCuts编译运行问题
      • ¥20 VS2019如何添加.mdf文件失败
      • ¥15 SeaTunnel多Transform配置问题
      • ¥15 消除字符串,求最短字符串长度
      • ¥20 有人做基于集员滤波的异常值处理相关的内容吗?(语言-matlab)
      • ¥30 matlab编程,用chatGPT帮助,但给出的code总是报错。