Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск количества найденных/повторов символов 
:(
    Опции темы
Ufyljy
  Дата 6.10.2007, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 5.10.2007

Репутация: нет
Всего: 1



Код

/* -_-_ Создано: 
                 Автор: 
        Дополнения: 
                    Коррекции:
        Благодарности: wils0n
*/   

#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<conio.h>

/********* Константы */
#define hr printf("_________________________________");
#define br printf("\n");
#define p3 br; br; br;
#define p2 br; br;
#define end system("PAUSE"); return 0;
#define beep puts("\a");
#define b 3

int main(int nNumberofArgs, char* pszArgs)
{
    int c;
    printf("Enter c: "); scanf("%d",&c);
    char str[c];
    
    printf("Enter symbols: "); scanf("%s",str);
    
    br; hr; br; int i;
    for(i=0; i<c-1; i++) {printf("%c, ",str[i]);}         
    if(c=i){i=i+1; printf("%c.",str[c]);}
    
    
    
    char q[1]; p2;
    printf("What are you want to found?: "); scanf("%s",&q);
     
    int f=0; 
    for(i=0; i<c; i++)
    {
             if(str[i] == q[0]) {f+=1;}
    }
    
    p2; printf("'%c' found: %d",q[0],f);
    /*         
    p2; 
    int e=1;
    
    for(i=0; i<c; i++)
    {
             if(str[i] == str[i+1])
             {e+=1;}
             
             else {str[i]=str[i+1]; str[i+1]=str[i];}
    }        
    p2;                 
    printf("REPEAT %d",e);
    */
    getch();
}                            
          


Не находит необходимый символ. Плохо дело. 
      


Это сообщение отредактировал(а) Ufyljy - 6.10.2007, 14:43
PM MAIL   Вверх
DjoNIK
Дата 6.10.2007, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: 4
Всего: 5



Код

    int c;
    printf("Enter c: "); scanf("%d",&c);
    char str[c];

Странно! Я раньше думал, что массив хранит определенное количество элементов. При чем это количество элементов определяется при компиляции!

Добавлено через 1 минуту и 49 секунд
Код

for(i=0; i<c-1; i++)

Ты проходишь по всему массиву, кроме последнего элемента.


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
zkv
Дата 6.10.2007, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(DjoNIK @  6.10.2007,  16:20 Найти цитируемый пост)
Я раньше думал, что массив хранит определенное количество элементов. При чем это количество элементов определяется при компиляции!

ты правильно думал smile
PM MAIL   Вверх
DjoNIK
Дата 6.10.2007, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 28.9.2006
Где: Питер/Георгиевск

Репутация: 4
Всего: 5



Цитата

ты правильно думал 

Хотя, если честно, такой код в g++ компилится и работает даже без предупреждений
Код

#include <iostream>

int main()
{

int c;
std::cin>>c;

char str[c];

for(int i=0; i<c; i++)
{
    str[i] = '0'+i;    
}

for(int i=0; i<c; i++)
{
    std::cout<<str[i]<<" ";
}
    
return 


Это сообщение отредактировал(а) DjoNIK - 6.10.2007, 16:35


--------------------
- Плесни-ка мне холодного кипятку.
- Как кипяток может быть холодным?! Ты, верно, хочешь кипяченой воды?
- Какая ещё кипяченая вода? Не пудри мне мозги - налейхолодного кипятку.
(разговор петербуржца и москвича)
PM MAIL ICQ   Вверх
nickless
Дата 6.10.2007, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 19
Всего: 181



Цитата(DjoNIK @  6.10.2007,  15:32 Найти цитируемый пост)
Хотя, если честно, такой код в g++ компилится и работает даже без предупреждений

Ну это смотря как компилировать smile

Код
$ g++ -Wall -Wextra -pedantic main.cpp -o main
main.cpp: In function ‘int main()’:
main.cpp:6: error: ISO C++ forbids variable-size array ‘str’




--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
Ufyljy
  Дата 6.10.2007, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 5.10.2007

Репутация: нет
Всего: 1



То, что я задаю размер массива через константу или переменную, нет ничего удивительного, у меня нормально компилиться (на devC++)

Добавлено через 8 минут и 26 секунд
Уберу я эту нехорошую строчку, которая при условии ставит "." на последний элемент массива.
Теперь получиться: 1,2,3,4,
А я не хочу запятую, я хочу точку! И с поиском!  smile 
PM MAIL   Вверх
zkv
Дата 6.10.2007, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(DjoNIK @  6.10.2007,  16:32 Найти цитируемый пост)
Хотя, если честно, такой код в g++ компилится и работает даже без предупреждений

VC++8.0 выдает на строке:
Цитата(DjoNIK @  6.10.2007,  16:32 Найти цитируемый пост)
char str[c];

три ошибки:
Цитата

error C2057: expected constant expression
error C2466: cannot allocate an array of constant size 0
error C2133: 'str' : unknown size

PM MAIL   Вверх
Ufyljy
Дата 7.10.2007, 06:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 5.10.2007

Репутация: нет
Всего: 1



> VC++8.0 выдает на строке ...

Хорошо, тогда какую альтернативу вы можете предложить?
PM MAIL   Вверх
archimed7592
Дата 7.10.2007, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Ufyljy @  7.10.2007,  06:43 Найти цитируемый пост)
Хорошо, тогда какую альтернативу вы можете предложить? 

new/delete или заведомо большой буфер. Гугль в помощь.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0548 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.