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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Несколько ошибок пр работе со строкой 
:(
    Опции темы
SoWa
Дата 28.2.2007, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

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



Задача- посчитать кол-во единиц в строке.

Код

#include <iostream>

int main()
{
    char s;
    int i,c,f;
    
        s=getchar();
        for (i; i<=strlen(s); ++i)
            {
                   if (s[i]=='1')
                      {
                                 c++;
                      }
            }
        printf(c);
        getch;
}


Ошибка в условии цикла, в условии единицы, в выводе.
Вопрос такой: Как использовать strlen, как брать символ от строки и как вывести число?

Использую DevC++

Это сообщение отредактировал(а) SoWa - 28.2.2007, 18:56


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Fazil6
Дата 28.2.2007, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 35
Всего: 60



Код

#include <iostream>
#include <string>
#include <algorithm>
#include <conio.h>

const char simb = '1';
int main()
{
    std::string s;
    std::cin >> s;

    std::cout << std::count(s.begin(), s.end(), simb);
    
         getch();
}

PM MAIL   Вверх
threef
Дата 28.2.2007, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 27.10.2005
Где: Запорожье

Репутация: 9
Всего: 10



Цитата


Код

#include <iostream>

int main()
{
    char s;
    int i,c,f;
    
        s=getchar();
        for (i; i<=strlen(s); ++i)
            {
                   if (s[i]=='1')
                      {
                                 c++;
                      }
            }
        printf(c);
        getch;
}




1. getchar() нет в iostream
2. strlen может применяться только к строкам, а у тебя s - отдельный символ
3. операция [] (элемент массива)  может быть применена только к массиву 
4.printf© - вывод по формату, одно число не выведет
5.getch - функция, не хватает скобок ()
PM MAIL   Вверх
Rockie
Дата 28.2.2007, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 8
Всего: 31



SoWa, применительно к твоему коду, к примеру по такому принцыпу:
Код

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{
    char s[20];
    int c = 0;

    cout<<"Enter string ";
    cin>>s;
    
    int len = strlen(s);
    for (int i=0;i<len;i++)
    {
        if (s[i]=='1')    c++;
    }

    cout<<"\nThere are "<<c<<" '1' symbols in "<<s;

    return 0;
}


Узнаем длину строки в 
Код

int len = strlen(s);

заранее. Для того, чтобы не использовать strlen() в цикле. 




--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
threef
Дата 28.2.2007, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 27.10.2005
Где: Запорожье

Репутация: 9
Всего: 10



Дубль выскочил. sorry

Это сообщение отредактировал(а) threef - 28.2.2007, 19:20
PM MAIL   Вверх
Rockie
Дата 28.2.2007, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

Репутация: 8
Всего: 31



хе, успевай только ответить smile
SoWa, чтобы приведенный мною код скомпилился - убери 
Код

#include "stdafx.h"

smile

Это сообщение отредактировал(а) Rockie - 28.2.2007, 19:21


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
SoWa
Дата 28.2.2007, 19:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

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



О! Спасибки! Сейчас я зачащу в этом разделе- начали Си в универе!
Rockiethreef, плюсы )


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Tyjin
Дата 28.2.2007, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



на C, без С++ вот так:

#include <stdio.h>
#include <string.h>
#include <conio.h>

int main()
{
    char s[255];
    int i;
    int c = 0;
    int count = 0;
    
    gets(s);

    for (i = 0; i < strlen(s); i++)
        if (s[i]=='1')
               c++;
                     
    printf("Count=%d",c);
    getch();
    return 0;;
}
PM MAIL   Вверх
0lmer
Дата 1.3.2007, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Tyjin @  28.2.2007,  19:32 Найти цитируемый пост)
int c = 0;    int count = 0;        gets(s);    for (i = 0; i < strlen(s); i++)        if (s[i]=='1')               c++;



зачем переменная count если ее не использовать?
PM   Вверх
yura
Дата 1.3.2007, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



для полноты картины - можно так еще smile :

Код


    char char2find = ... ;
    char* source = ... ;
    if ( !char2find || !source ) return;
    int cnt = 0;
    const char* pos = source;
    while( (pos = strchr(pos, char2find)) )
    {    
        pos++;
        cnt++;
    }    

    printf("cnt='%d'\т",cnt);


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
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.0634 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


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

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