#include <stdio.h>
int main()
{
//已知的字符串,由于不经常修改,所以用char *
char *str = "You are my best friend";
//最长单词的长度,初始化为0
int maxLen = 0;
//用作记录每次空格后第一个字符的位置
char *p = str;
//用于记录最长单词的起始位置
char *subStr;
//计算出字符串的长度,便于循环遍历
int strLen = strlen(str);
//用于存储最长单词的字符数组
char subs[20];
//for循环遍历已知字符串的每个字符
for(int i=0; i<=strLen; i++) {
//如果当前字符为空或者‘\0’
if(*str == ' ' || *str == '\0') {
//str-p 即为当前单词的长度,如果大于maxLen
if((str-p)>maxLen) {
//将当前单词的长度赋值给maxLen
maxLen = str-p;
//保存当前最长单词的起始位置
subStr = p;
}
//‘’字符+1,记录下一个单词的起始位置
p = str+1;
}
//指向下一个单词
str ++;
}
//for循环遍历最长单词,赋值给subs
for(int i=0; i<maxLen; i++) {
subs[i] = *(subStr + i);
}
//在末尾添加 ’\0‘结束字符
subs[maxLen] = '\0';
//输出
printf("最长单词是%s", subs);
return 0;
} |