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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2016, 07:18   #1
lomik222
Новичок
Джуниор
 
Регистрация: 11.03.2016
Сообщений: 3
По умолчанию Помогите исправить ошибки в коде

Код:
#include "windows.h"
#include <string.h>
#include <stdlib.h> 
#include <stdio.h>
#include <iostream>
#include <conio.h>

using namespace std;

int main()
{
    setlocale (LC_ALL, "Russian");
 
    int b=0, c=0, s=0;
    char *text;
    cout<< "введите текст:\n";
    cin.getline(text, strlen(text));
    for(int i=0; text[i]!='\0';i++)
    {//будет сравниваться с кодировкой анси каждого символа
        if(47<int(text[i])&&int(text[i])<58) c++;//для цифр (от 48 до 57)
        else    if(int(text[i])>64&&int(text[i])<91) b++;//для символов верхнего регистра
        else    if(int(text[i])>96&&int(text[i])<123) b++;// а также нижнего
        else s++;// все остальное записывается в спец символы
    }
    cout << "количество букв: " <<b<<endl;
    cout << "количество цифр: " <<c<<endl;
    cout << "количество спец символов: " <<s<<endl;
    
    _getch();
return 0;
}
lomik222 вне форума Ответить с цитированием
Старый 11.03.2016, 08:01   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Код:
char *text;
Память выделять кто будет?
p51x вне форума Ответить с цитированием
Старый 11.03.2016, 08:55   #3
lomik222
Новичок
Джуниор
 
Регистрация: 11.03.2016
Сообщений: 3
По умолчанию

Я выделил память, программа работает, но когда вводишь слово или числа он пишет что их всего то 2, хотя там больше. В чем проблема?
lomik222 вне форума Ответить с цитированием
Старый 11.03.2016, 09:16   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Где и как вы выделили? Показывайте...

Цитата:
strlen(text)
Вы в курсе, что он считает по 0 символу? Вы 0 символ после выделения памяти записали в нужное место?
p51x вне форума Ответить с цитированием
Старый 11.03.2016, 09:25   #5
lomik222
Новичок
Джуниор
 
Регистрация: 11.03.2016
Сообщений: 3
По умолчанию

вот так:
Код:
int b=0, c=0, s=0;
    char *text = new char [50];
    cout<< "введите текст:\n";
    cin.getline(text, strlen(text));
    for(int i=0; text[i]!='\0';i++)
    {//будет сравниваться с кодировкой анси каждого символа
        if(47<int(text[i])&&int(text[i])<58) c++;//для цифр (от 48 до 57)
        else    if(int(text[i])>64&&int(text[i])<91) b++;//для символов верхнего регистра
        else    if(int(text[i])>96&&int(text[i])<123) b++;// а также нижнего
        else s++;// все остальное записывается в спец символы
    }
    cout << "количество букв: " <<b<<endl;
    cout << "количество цифр: " <<c<<endl;
    cout << "количество спец символов: " <<s<<endl;
lomik222 вне форума Ответить с цитированием
Старый 11.03.2016, 09:51   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Ну и где strlen найдет нулевой символ? Та где повезет...
p51x вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста исправить ошибки в коде Nata Golden rose Общие вопросы C/C++ 6 18.05.2014 23:28
Ошибки в коде. Необходимо исправить. Vladzis Общие вопросы C/C++ 6 06.05.2014 17:28
Треугольная последовательность. Помочь исправить ошибки в коде (C) lmbe Помощь студентам 0 27.12.2013 03:17
Определить по коду алгоритм сортировки и исправить специально допущенные в коде ошибки ( Turbo Delphi ) Just-Joni Помощь студентам 0 26.12.2013 12:24
метод квадратного корняЖ исправить ошибки в коде. at13 Помощь студентам 1 20.10.2011 20:11