int main(int argc, const char * argv[]) {
// 定义一个字符数组,用来接收控制台的输入
char inputStr[100];
printf("Please input a string:\n");
// 接收控制台输入,scanf和gets,推荐gets
gets(inputStr);
// length表示字符串的长度
int length = (int)strlen(inputStr);
// 标志位,表示是否是上一个单词结束
int isWord = 0;
// 记录每个单词的长度
int wordLength = 0;
int maxLength = 0;
for (int i = 0; i < length; i++) {
char c = inputStr;
// 是一个空格,空格表示上一个单词结束
if (c == ' ') {
isWord = 0;
}
// 说明开始了一个新的单词,处理单词首字母
else if (!isWord) {
// 标记为开始一个新的单词
isWord = 1;
// 开始计算当前单词的长度,把长度重置为0
wordLength = 0;
// 单词的首字母属于单词的一部分,所以长度+1
wordLength++;
}
// 新单词中除了首字母之外的其它字符
else if (isWord) {
wordLength++;
// 此处说明上一个单词已经结束了,可以拿到上一个单词的长度,和最大的长度进行比较
if (wordLength > maxLength) {
maxLength = wordLength;
}
}
}
printf("%d\n", maxLength);
return 0;
} |