#include <stdio.h>
#include <string.h>//因为用到了字符串函数strlen,所以要引入包含这个函数的头文件
int main(int argc, const char * argv[])
{ //定义一个已知的字符串,存放在字符数组ch中,const表示该字符串不可随意修改 const char ch[] = "This is super man"; //打印已知的字符串 printf("%s\n",ch); //定义一个整型变量,用于存储最长单词的长度,并初始化为0 int maxWordLength = 0; //定义一个整型变量,用于存储当前单词的长度,并初始化为0 int currentWordLength = 0; //定义一个整型变量,用于存储最长单词的起始字母在字符数组中对应的下标,并初始化为0 int maxWordStartIndex = 0; unsigned long len = strlen(ch); //使用循环来遍历字符串,由于要包含最后一个字符所以要<= for (int i = 0; i <= len; i++) { //定义一个字符变量,用于记录字符数组第i个元素 char character = ch; //使用if语句进行判断:如果字符变量不等于' '而且也不等于'\0',说明当前单词还没结束,所以单词长度自增+1 if (character != ' ' && character != '\0') { //当前单词长度自增+1 currentWordLength ++ ; } else //如果不满足上述条件,则进入else语句 { //再次进行判断:如果最长单词长度小于当前单词长度 if(maxWordLength < currentWordLength) { //把当前单词长度值赋值给最长单词长度,即当前最长单词为目前最长单词 maxWordLength = currentWordLength; //当前空格对应的元素下标减去当前单词的长度可以得到这个单词首字母对应的元素下标(即单词的起始下标) maxWordStartIndex = i - currentWordLength; } //下一步要计算下一个单词的长度,所以要将当前单词长度设置为0 currentWordLength = 0; } } //打印最长单词 printf("最长的单词为:"); for (int i = maxWordStartIndex; i < maxWordLength + maxWordStartIndex; i++) { printf("%c",ch); } printf("---"); //打印最长单词首字母的下标和单词长度 printf("此单词的长度为: %d\n",maxWordLength); return 0; }
我觉得这个写的还行,,有没有别的思路交流一下
|