|
Post by huangno1 on Mar 2, 2017 20:38:43 GMT -8
程式說明
請撰寫一個程式,讀入連續的字串直到空字串 (直接按 Enter) 為止。
每輸入一個字串,請先轉換其格式為第一個字母大寫,其餘字母小寫。(假設輸入的字串只包含英文字母)
請輸出所有包含兩個以上母音字母 (a, e, i, o, u) 的字串中最大的字串(字典順序)。
若所有輸入的字串都不包含兩個以上母音,則輸出空字串。
輸入:
BebRAS
alice
輸出為 Bebras
輸入:
ALICE
bob
輸出為 Alice。
#include <stdio.h>
#include <ctype.h>
#include <string.h>
void format ( char str [ ] )
{
int i = 1 ;
str [ 0 ] = toupper ( str [ 0 ] ) ;
while ( str [ i ] != '\0' )
{
str [ i ] = tolower ( str [ i ] ) ;
i ++ ;
}
}
// ---------------------------------------------------------------
int num_vowels ( char str [ ] )
{
int i = 0 , j = 0 ;
int sum = 0 ;
char v [ ] = "AEIOUaeiou" ;
while ( str [ i ] != '\0' )
{
for ( j = 0 ; j < 10 ; j ++ )
{
if ( str [ i ] == v [ j ] )
sum ++ ;
}
i ++ ;
}
return sum ;
}
// ---------------------------------------------------------------
int main()
{
char str [ 100 ] = { } , max [ 100 ] = { } ;
do
{
gets(str);
format(str);
if (
strcmp ( str , max ) > 0 && num_vowels ( str ) >= 2
)
{
strcpy ( max , str ) ;
}
}
while (
strlen( str ) != 0
);
printf("%s\n", max);
return 0;
}
|
|