Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.04.2010, 20:54   #1
IIPOTUBBCEX
Пользователь
 
Регистрация: 13.04.2009
Сообщений: 16
Сообщение Динамический массив символов

Задача состоит в том чтоб подсчитать кол-во слов, и она впринцепе решена, хотелось бы только чтоб можно было ввести не только строку из 99 символов или сколько мы там укажем, а совершенно любую. Если я указываю char *str[], то компилятор ругается на то что размер не определен, подскажите как можно реализовать, буду благодарен.

Код:
#include <stdio.h>

int enter_str(char[]);
int podc4et_clov(char[]);

int main() {
	char str[100];
	int clova;
	enter_str(str);
	clova=podc4et_clov(str);
	printf("kol-vo clov: %i",clova);
	return 0;
}
 
int naxodim_pervii_cumvol(char str[],int &clova){
	for(int i=0;str[i]!='\0';i++){
			if(str[i]!=' '){
				clova=1;
				return i;
			}
	}
	return -1;
}
int podc4et_clov(char str[]){
	int clova=0;
	int per_cimvol;
	per_cimvol=naxodim_pervii_cumvol(str,clova);
	if (per_cimvol==-1) return 0;
	for(int i=per_cimvol;str[i+1]!='\0';i++){
		if((str[i+1]!=' ')&&(str[i]==' ')){
			clova+=1;
		}
	}
	return clova;
}
int enter_str(char str[]){
	printf("Enter string: ");gets(str);
	return 0;
}
использовать string нельзя, можно только средства С.
IIPOTUBBCEX вне форума Ответить с цитированием
Старый 28.04.2010, 23:23   #2
silent_1991
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 68
По умолчанию

Можно так:
Код:
int main()
{
    int ch, str_size = 1;
    char *str = (char *)calloc(str_size, sizeof(char));
    
    printf("Enter string:\n");
    
    while ((ch = getchar()) != '\n')
    {
        str[str_size - 1] = (char)ch;
        str = (char *)realloc(str, (++str_size) * sizeof(char));
        str[str_size - 1] = '\0';
    }
    
    printf("%s\n", str);
    
    getch();
    return 0;
}

Последний раз редактировалось silent_1991; 28.04.2010 в 23:25.
silent_1991 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический массив Kiragaz Общие вопросы C/C++ 8 29.09.2009 22:30
Динамический массив _ares_ Паскаль, Turbo Pascal, PascalABC.NET 3 26.12.2007 23:54
динамический массив Diller Помощь студентам 48 07.10.2007 16:43
Динамический массив Mickle Общие вопросы Delphi 8 19.06.2007 06:45