int main(){ int cnt[] = {5, 7, 5}; char s[500]; int c[3]; while(gets(s) && strcmp(s,"e/o/i") != 0){ c[0] = 0; c[1] = 0; c[2] = 0; int in = 0; for(int i=0; s[i]; i++){ if(s[i] == '/'){ if(c[in] != cnt[in]) break; in++; } else if(i == 0 && isAlphabet(s[i])){ c[0]++; } else if(i && isAlphabet(s[i]) && !isAlphabet(s[i-1])){ c[in]++; } } if(in < 3){ if(c[in] != cnt[in]) printf("%d\n", in+1); else printf("Y\n"); } } return 0; }
void printFirstWord(char ir_chArr[]) { int wordStartIndex = -1; int wordEndIndex = -2; // Början på ordet ligger efter slutet på ordet om inget ord hittats för att hjälpa utskriften nedan int index = 0; if (NULL != ir_chArr) { // Hitta början på första ordet while (ir_chArr[index] != '\0') { if (1 == isAlphabet(ir_chArr[index])) { wordStartIndex = index; // Vi har hittat första bokstaven. Spara adressen. break; } index++; } // Om vi hittat starten på ett ord - hitta slutet if (wordStartIndex != -1) { do { if (1 == isAlphabet(ir_chArr[index])) { wordEndIndex = index; } else { break; } index++; } while (ir_chArr[index] != '\0'); // Skriv ut ordet { int i; // Adapted for VS2010 for (i = wordStartIndex; i <= wordEndIndex; i++) { printf_s("%c", ir_chArr[i]); } } } } if (-1 == wordStartIndex) { printf_s("There is no word at the requested index."); } } // printFirstWord
bool isPalindrome(string s) { int len = s.length(), left = 0, right = len - 1; while (left < right) { while (left < len && !isAlphabet(s[left])) left++; while (right >= 0 && !isAlphabet(s[right])) right--; if (left < right) { s[left] = lower(s[left]); s[right] = lower(s[right]); if (s[left] != s[right]) return false; left++; right--; } } return true; }
char* reverseSentence(char *str) { int i, length, j; length = strlen(str); i = 0; while(i < length) { if(!isAlphabet(str[i])) { i++; continue; } j = i + 1; while(j < length && isAlphabet(str[j])) { j++; } str = reverseString(str, i, j - 1); i = j + 1; } return str; }
void Label::draw(SpriteManager* sprites) { sprites->at(type)->start(); for (unsigned i = 0; i < text.size(); i++) { if (isAlphabet(text[i])) {//text[i] >= 'A' && text[i] <= 'Z') { sprites->at(type)->translateTo(rect.x + i * TEXT_OFFSET, rect.y); sprites->at(type)->draw(0, 0, convertToFrame(text[i])); } } sprites->at(type)->end(); }
char* getWord(char ir_charArr[], int i_wordIndex) { // Returnerar pekare till det ord som ligger på wordIndex. // Om wordIndex är större än tillgängligt antal ord returneras pekare till '\0' int index = 0; int count = 0; char *wordPtr = NULL; int insideWord = 0; do { if (1 == isAlphabet(ir_charArr[index])) { if (0 == insideWord) { // Nytt ord Börjar if (count == i_wordIndex) { wordPtr = &ir_charArr[index]; break; // Vi har satt pekarens värde: bryt } insideWord = 1; } else { // Vi är i ett ord insideWord = 1; } } else { if (1 == insideWord) { // Ordet Slutar count++; insideWord = 0; } else { // Vi är mellan ord insideWord = 0; } } index++; } while (ir_charArr[index] != '\0'); return wordPtr; } // getWord
double postfix (String exp) { int i, l = strlen(exp); TSNODE_p_t stack = NULL; TNODE_p_t root = NULL; for (i = 0; i < l; ++i) { char z = *(exp + i); if (isNumber(z)) { String str = initString; snprintf(str, SIZE, "%d", numericValue(z)); root = initTNode(str); root->type = TYPE_OPERAND; push(&stack, root); } else if (isAlphabet(z)) { double numz; printf("\n\tEnter the value of '%c': ", z); scanf(" %lf", &numz); String str = initString; snprintf(str, SIZE, "%lf", numz); root = initTNode(str); root->type = TYPE_OPERAND; push(&stack, root); } else if (isOperator(z)) { TNODE_p_t b = pop(&stack); TNODE_p_t a = pop(&stack); String str = initString; snprintf(str, SIZE, "%c", z); root = initTNode(str); root->right = b; root->left = a; root->type = TYPE_OPERATOR; push(&stack, root); } } root = pop(&stack); return evaulate(root); }
int main(){ FILE *fin,*fout; int i_line,startSentence; // use i_line to index line when read text int i,j; char c; char str[80]; initTable(); // read stop words from stopw.txt file if((fin = fopen("stopw.txt","r")) == NULL){ printf("Cant read file stopw.txt\n");exit(1); } while(fscanf(fin,"%s",str) == 1){ char* buff = (char*)malloc((strlen(str)+1)*sizeof(char)); strcpy(buff,str); toLower(buff); stop.words[(stop.size)++] = buff; } fclose(fin); qsort(stop.words,stop.size,sizeof(char*),compare_str); // read text from vanban.txt file char name[100]; printf("Nhap ten file:"); scanf("%s",name); if((fin = fopen(name,"r")) == NULL){ printf("Cant read file %s\n",name);exit(1); } i=0; i_line = 1; startSentence = 1; while(!feof(fin)){ if ((c=fgetc(fin)) != EOF){ /* if a character is an alphabet or a '-' character (but not at start of word), add it to str string */ if(isAlphabet(c) || (c == '-' && i != 0)){ str[i++] = c; } else { str[i] = '\0'; if(checkWord(str,startSentence)){ // printf(">%s\n",str); char* buff = (char*)malloc(sizeof(char)*(strlen(str)+1)); strcpy(buff,str); addWord(buff,i_line); } if (c == '\r' || c == '\n'){ i_line++; } startSentence = isEndSentenceCharacter(c); i = 0; } } } fclose(fin); for(i = 0; i < table.size; i++){ Index index = table.table[i]; printf("%s %d %s\n",index.word,index.numberOfWords,index.line); } return 0; }