コード例 #1
0
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;
}
コード例 #2
0
ファイル: Labb4_3.c プロジェクト: kajvi/Programmering_DVA117
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
コード例 #3
0
		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;
		}
コード例 #4
0
ファイル: reverseWords.c プロジェクト: mosesjmartin/Programs
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;
}
コード例 #5
0
ファイル: Label.cpp プロジェクト: chrisstopher/Connect
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();
}
コード例 #6
0
ファイル: Labb4_3.c プロジェクト: kajvi/Programmering_DVA117
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
コード例 #7
0
ファイル: PostfixTree.c プロジェクト: Anam9/CSE-Labs
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);
	
}
コード例 #8
0
ファイル: ex1.c プロジェクト: TouanAin/CompilerHomework
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;
}