вообщем в Borland C нужно написать программу, которая запрашивает строку символов и считает сколько в ней символов "x". проблема в том что нужноу в этой программе использовать функцию. Без функции я написал и всё работает, а с функцией вроде уже всё написал, но выдаёт ошибку =(
если можно-либо напишите прогу целиком, если ни у кого сегодня времени нет, то хотябы подскажите (сегодня) какими способами можно значение функции этой вывести на экран? тоесть прога должна работать так: (приведу пример выполнения)
INPUT STRING FOR ANALYSE
XxX XxX xXx
SYMBOL 'x' WAS FOUND 4 TIMES
заранее спасибо. если можно-то ответьте сегодня (или до завтрашнего утра)
28 января 2009 в 9:01
>P.S.
>char *str=new char[100];
>char str[100];
>Факультативная задачка на дом: Что нам "памяти больше грузанет"? >=))))
Смотря скока раз ты запустишь прогу, и скока раз в конце будет оператор delete)))
28 января 2009 в 6:04
На практике вообще приходиться знать несколько языков. Мне пришлось постигнуть три (Паскаль, С++,С, Асемблер), но еще нужно два. А на чсет стиля программирования – это каждому свое.
27 января 2009 в 23:05
Если уж говорить о C, то пользоваться надо не new, а malloc (или calloc, в данном случае предпочтительней, наверно). А если все таки использовать плюсовый new, то и удалять надо через delete[]. А то учите молодежь плохому
27 января 2009 в 21:04
Динамическая фиксируется и ОС ее не трогает, думает что она нужна кому-то. Так что после н-ого количества запусков у вас не будет озушки, но если выделить 100 байт статически под слово, то скажите мне – что это за слово длиной в 100 символов.
P.S. Доопределим задачу. По каким адресам выделится память.
27 января 2009 в 20:02
А можно еще класс сделать и десяток методов, так, чисто поржать.
Динамические массивы нужны, там где присутствует потенциальная необходимость изменить размер массива. Да и любое отведение памяти – потенциальная ошибка. С чем надо быть осторожным и использовать лишь по потребности.
В общем, не стоит микроскопом гвозди забивать.
P.S.
char *str=new char[100];
char str[100];
Факультативная задачка на дом: Что нам "памяти больше грузанет"? =))))
27 января 2009 в 18:03
я просто оформил приведенный автором код, так как ему надо было – ничего моего тут нет) а так вы правы)
27 января 2009 в 17:01
Странно вы пишите.
Один сразу динамический массив определил, другой в статический ушел, чтоб память грузануть. Динамическую память темболее надо чистить самому в конце проги {… free(str);}
27 января 2009 в 12:01
#include<string.h>
#include<stdio.h>
int
function(char *str)
{
int count = 0;
for (unsigned int i = 0; i < strlen(str); i++)
if (str[i] == 'x')
count++;
return count;
}
int
main()
{
char str[100];
printf("Input string for analyse\n");
gets(str);
printf("Symbol 'x' was found %d times.\n", function(str));
getchar();
}
27 января 2009 в 11:05
int foo(char *str)
{
int count=0;
for (int i=0; i<strlen(str); i++)
if(str[i]=='x') count++;
return count;
}
main()
{
char *str=new char[100];
printf("Input string for analyse\n");
gets(str);
printf("Symbol 'x' was found %d times.\n", foo(str));
getch();
}
27 января 2009 в 11:03
А что за функция? Исходник с функцией выложи. И что за ошибку выдает. Текст ошибки.
27 января 2009 в 9:05
#include<string.h>
#include<stdio.h>
#include<conio.h>
main()
{
int count=0;
char *str=new char[100];
printf("Input string for analyse\n");
gets(str);
for (int i=0; i<strlen(str); i++)
if(str[i]=='x') count++;
printf("Symbol 'x' was found %d times.\n", count);
getch();
}
27 января 2009 в 8:04
исходник в студию. Там где работает без функции.