Member 13640412 Ответов: 1

Как я могу печатать увеличивается "количество" переменных этой функции?


void parse(char* str)
{
    int left = 0, right = 0, count=0;
    int len = strlen(str);
	printf("%d",count);
 
    while (right <= len && left <= right) {
        if (isDelimiter(str[right]) == false)
            right++;
 
        if (isDelimiter(str[right]) == true && left == right) {
            if (isOperator(str[right]) == true){
                printf("'%c' IS AN OPERATOR\n", str[right]);
				count=count+1;
			}
 
            right++;
            left = right;
        } else if (isDelimiter(str[right]) == true && left != right
                   || (right == len && left != right)) {
            char* subStr = subString(str, left, right - 1);
 
            if (isKeyword(subStr) == true){
                printf("'%s' IS A KEYWORD\n", subStr);
				count=count+1;
			}
 
            else if (isInteger(subStr) == true){
                printf("'%s' IS AN INTEGER\n", subStr);
				count=count+1;
			}
 
            else if (isRealNumber(subStr) == true){
                printf("'%s' IS A REAL NUMBER\n", subStr);
				count=count+1;
			}
 
            else if (validIdentifier(subStr) == true
                     && isDelimiter(str[right - 1]) == false){
                printf("'%s' IS A VALID IDENTIFIER\n", subStr);
				count=count+1;
			}
 
            else if (validIdentifier(subStr) == false
                     && isDelimiter(str[right - 1]) == false){
                printf("'%s' IS NOT A VALID IDENTIFIER\n", subStr);
				count=count+1;
			}
            left = right;
        }
    }
    return ;
}
 
// DRIVER FUNCTION
int main()
{
     // maximum legth of string is 100 here 
    char str[100] = "int a = b + 1c; ";
 
    parse(str); // calling the parse function
 
    return (0);
}


Что я уже пробовал:

я попытался вернуть целочисленное значение, но функция также имеет символ.
мне нужно увеличенное значение счетчика.
Мне нужно напечатать переменную "count", которая увеличивается каждый раз, когда выполняется цикл

CPallini

Эта функция такова void. Вы можете изменить его для возврата int- Я что-то упустил?

1 Ответов

Рейтинг:
2

KarstenK

Немного неясно, что вы имеете в виду, но если вы хотите добавить символы к длине, то добавьте 1 для каждого символа или добавьте длину строки.

Вы правильно использовали функцию strlen:

char str[100] = "int a = b + 1c; ";
int len = strlen(str);
//or add to some other length
totalLength += len;
printf("%d", len);


Member 13640412

я хотел напечатать переменную "count" в функции void parse. мне нужно увеличенное значение.

в любом случае, спасибо за помощь.

KarstenK

вы можете сделать это с помощью printf("%d",count); везде, где count находится "в области видимости". В противном случае верните его из функции синтаксического анализа.