Форум программистов, компьютерный форум CyberForum.ru

Строки и символы, выделение памяти - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Считывание из бинарного файла в массив_не работает! http://www.cyberforum.ru/cpp-beginners/thread238029.html
у меня есть большая программа, где я работаю с бинарными файлами, содержащими список студентов...так вот, я создала бин файл со студентами-отличниками, а следующая функция должна выполнять сортировку этого файла по группам, а каждую группу по фамилиям в алфавитном порядке( используя стандартную функцию сортировки qsort). вся соль в считывании в массив структур из файла - не хочет =((( до этого...
C++ Перевод с QBasic в С/С++ Есть программа для QBasic, она нужна в С/С++ RANDOMIZE TIMER CLS DIM k(5) k(1) = 0 k(2) = 0 К(3) = 0 k(4) = 0 http://www.cyberforum.ru/cpp-beginners/thread238028.html
ПРОГРАММИРОВАНИЕ ФОРМУЛ C++
Составить алгоритм и программу для вычисления значений функции для нескольких значений аргумента(ов) \формула дана в рисунке.\ Я составил программу, но почему-тоона не дает те результаы, которые нужны.А точнее если поставить значения x и y - то значение z - не такое.. В чем ошибка? #include<iostream.h> #include<iomanip.h> #include<math.h> #include<stdio.h> void main() {
оператор delete[] C++
Применение delete (без ) к указателю на массив освобождает только нулевой элемент, а оставшиеся создают утечку памяти, но как объяснить этот код #include<iostream> using namespace std; int main(){ int *mas1=new int; // создаём массив mas1 из 5 элементов cout<<"\nmas1= \n"; for(int i=0; i<5; i++){ mas1=i; cout<<mas1<<" ";
C++ boubble array http://www.cyberforum.ru/cpp-beginners/thread237939.html
Всем доброго времени суток!Даны пять чисел:5 18 9 1 4.Кто-нибудь может показать,как выглядит: а)Сортировка выбором массива этих чисел. б)Пузырьковая сортировка массива этих чисел? Спасибо всем кто поможет!
C++ i++ и ++i В чем разница? Что обозначает ++i ? подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
04.02.2011, 14:56     Строки и символы, выделение памяти
Цитата Сообщение от Jincer Посмотреть сообщение
Nameless One, Большое спасибо ! Вот окончательный текст программы:
C
1
2
3
4
//...
char *a;
gets (a);
//...
Так делать - плохо! Под строку (т.е. массив символов) нужно выделять память статически или динамически. Статическое выделение памяти может выглядеть так (вместо небезопасной функции gets будем использовать более безопасную fgets; нужно помнить что fgets, в отличие от gets, сохраняет введенный символ перевода строки):
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define SIZE 80         /* Максимальный размер строки */
 
int main()
{
    char buf[SIZE];
    fgets(buf, SIZE, stdin);
 
    /* Если нужно, чтобы строка не содержала
     * символ '\n' (перевод строки), то
     * нужно раскомментировать следующие две строки
     */
    /* if(buf[strlen(buf) - 1] == '\n');
     *  buf[strlen(buf) - 1] = '\0';
     */
 
    /* Работаем со строкой */
    //...
    printf("Size is %u\n", strlen(buf));
 
    exit(0);
}
Цитата Сообщение от Jincer Посмотреть сообщение
И если не сложно, напиши пожалуйста как ты хотел с помощью size() , я не совсем понял.
Пример использования метода size() для получения длины строки типа std::string:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
 
int main()
{
    std::string line;
    
    std::cout << "Input a line" << std::endl;
    std::getline(std::cin, line);
    std::cout << "Its length is " << line.size()
          << std::endl;
    
    return 0;
}
 
Текущее время: 13:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru