|
发表于 2021-9-27 17:08:16
|
显示全部楼层
本帖最后由 jackz007 于 2021-9-27 17:25 编辑
- #include <stdio.h>
- void longest(char line[])
- {
- int i , j , m ;
- char word[64] ;
- // 获取最长单词长度
- for(i = j = m = 0 ; line[i] ; i ++) {
- if(line[i] >= 'A' && line[i] <= 'Z' || line[i] >= 'a' && line[i] <= 'z') {
- j ++ ;
- } else {
- if(j && j > m) m = j ;
- j = 0 ;
- }
- }
- if(j && j > m) m = j ;
- printf("最长单词为 %d 个字符\n" , m) ;
- // 提取所有最长单词
- for(i = j = 0 ; line[i] ; i ++) {
- if(line[i] >= 'A' && line[i] <= 'Z' || line[i] >= 'a' && line[i] <= 'z') {
- word[j ++] = line[i] ;
- word[j] = '\0' ;
- } else {
- if(j == m) printf("%s\n" , word) ;
- j = 0 ;
- }
- }
- if(j == m) printf("%s\n" , word) ;
- }
- int main(void)
- {
- char s[512] ;
- // 取得键盘输入
- gets(s) ;
- longest(s) ;
- }
复制代码
编译、运行实况:
- D:\0002.Exercise\C>g++ -o x x.c
- D:\0002.Exercise\C>x
- Abc12,CDEF,12HIJKm,88KLJMi,5588ABCDE
- 最长单词为 5 个字符
- HIJKm
- KLJMi
- ABCDE
- D:\0002.Exercise\C>
复制代码 |
|