编程在一个已知的字符串中找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。
比如:"ni hao world",最长单词是5个字母
这个题目其实不难,但是很多初学者会没有思路,我把这个分享出来.编译器用的是xCode.
int length = 0, temp =0;
char str[100] ="";//xCode中没有String 用字符数组来表示
gets(str); // 获取字符串
for (int i =0; i < strlen(str); i++) {
if (!((isalpha(str[i])) || (str[i] ==' '))) { // 验证输入是否为字母或空格
printf("⚠️ Notify: just input with letter or space\n");
return 0; // 输入不合法 结束
} elseif (str[i] == ' ') {// 遇到空格则长度清0
length = 0;
} else {
length++;// 不是空格,长度+1
if (length > temp) { //若出现长度更长的单词则记录
temp = length;
}
}
}
printf("longest: %d",temp);// 输出最长单词字母个数