int main(int argc, char *argv[]) { if (argc < 2) { printf("ERROR: You need at least one argument.\n"); return 1; } int i = 0; int j = 0; char letter; char original_letter; for (j = 1; j < argc; j++) { for (i = 0; argv[j][i] != '\0'; i++) { letter = original_letter = argv[j][i]; if (is_uppercase(letter)) letter += CASE_OFFSET; switch(letter) { case 'a': printf("%d: %c\n", i, original_letter); break; case 'e': printf("%d: %c\n", i, original_letter); break; case 'i': printf("%d: %c\n", i, original_letter); break; case 'o': printf("%d: %c\n", i, original_letter); break; case 'u': printf("%d: %c\n", i, original_letter); break; case 'y': if (i > 2) { printf("%d: %c\n", i, original_letter); } break; default: printf("%d: %c is not a vowel\n", i, letter); } } } return 0; }
int ft_str_is_uppercase(char *str) { int i; i = 0; while (str[i] != '\0') { if (!(is_uppercase(str[i]))) return (0); i++; } return (1); }
void CGraphmatFile :: InitNonContextDescriptors (CGraLine& L) { bool fl_ra=false, /* rus alpha */ fl_la=false, /* lat alpha */ fl_lw=false, /* lower alpha */ fl_up=false, /* upper alpha */ fl_decimal_number=false; size_t TokenLength = L.GetTokenLength(); const char* Token = L.GetToken(); BYTE first_char = (BYTE)Token[0]; if (L.IsSpace()) { L.SetDes (ODel); L.SetDes (OSpc); return; } if (L.IsEOLN()) { L.SetDes (ODel); L.SetDes (OEOLN); return; } if (L.IsIdent()) { L.SetDes (ODgCh); return; } if (L.IsNotPrint()) { L.SetDes ( ODel); if (L.IsParagraphChar ()) L.SetDes (OParagraph); else L.SetDes (ONil); return; } if (L.IsPunct()) { L.SetDes (OPun); int BracketClassNo = isbracket(first_char); if (BracketClassNo) L.SetDes( (BracketClassNo == 1) ? OOpn : OCls); else if (first_char==cHyphenChar) L.SetDes(OHyp); if ( TokenLength > 1 ) L.SetDes(OPlu); return; } for (int i=0; i<TokenLength; i++) { if ((BYTE)Token[i] == 39) continue; if (m_Language == morphRussian) { if (is_russian_alpha((BYTE)Token[i])) fl_ra = true; else if (is_latin_alpha((BYTE)Token[i])) fl_la = true; } else fl_la = fl_la || is_latin_alpha((BYTE)Token[i]); fl_decimal_number = fl_decimal_number || isdigit((BYTE)Token[i]); if ( (m_Language != morphGerman) || ( ( (BYTE)Token[i] != szlig) // ignore these symbols, they are equal in uppercase an in lowercase && ( (BYTE)Token[i] != Nu) ) ) { fl_lw = fl_lw || is_lowercase((BYTE)Token[i]); fl_up = fl_up || is_uppercase((BYTE)Token[i]); }; } if ( !fl_decimal_number && (fl_ra || fl_la) ) { if (fl_ra&&fl_la) // встретились русские и латинские буквы if (!m_bForceToRus) // если не надо приводить к русскому алфавиту L.SetDes(OUnk); // установить дескриптор "вопрос" else // попробовать привести слово к русскому алфав. { char s[255]; if (!force_to_rus(s, Token, TokenLength)) // если не удалось привести L.SetDes(OUnk); else { memcpy (const_cast<char*>(Token),s, TokenLength); // приводим L.SetDes(ORLE); // говорим, что это русская лексема } } else if (fl_ra) L.SetDes(ORLE); else L.SetDes(OLLE); if ( fl_lw && !fl_up ) L.SetDes(OLw); if ( !fl_lw && fl_up ) L.SetDes(OUp); if (fl_lw && is_uppercase(first_char)) L.SetDes(OUpLw); return; } if ( ((BYTE) first_char == '\'') && (TokenLength == 1) ) { L.SetDes(ODel); L.SetDes (OPun); }; if ( (fl_decimal_number && !fl_la && !fl_ra) ) L.SetDes(ODg); if (fl_decimal_number && (fl_ra || fl_la)) L.SetDes(ODgCh); if (L.GetDescriptors() == 0) L.SetDes(OUnk); }