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

разбить строку в массив - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ одномерный и двумерный массивы http://www.cyberforum.ru/cpp-beginners/thread112862.html
1.составить алгоритм,с помощью одномерного массива Заполнить массив числами 2.1, 2.2, 2.3, …, 2.18. 2.составить алгоритм,с помощью двумернонго массива Дан двумерный массив размером 10х10. Вывести на экран часть массива расположенную выше побочной диагонали. выручите ,милейшие!))
C++ вид поиска, метод поиска Написать программу, реализующую один из алгоритмов программного поиска данных в информационном массиве, расположенном в оперативной памяти (по желанию, можно считывать данные из файла), используя выбранные в соответствии с вариантом из табл. 2 формат ключа, формат других полей записи, вид и метод поиска. Формат ключа int, char, float, char Вид поиска: по совпадению Формат неключевых полей... http://www.cyberforum.ru/cpp-beginners/thread112840.html
C++ Проверить баланс скобок
:)Здравствуйте. Помогите пожалуйста с задачей. Проверить имеется ли в заданном тексте баланс открывающихся и закрывающихся скобок, т.е. верно ли, что можно установить взаимно однозначное соответствие открывающихся и закрывающихся скобок, со следующими свойствами: а) Открывающаяся скобка всегда предшествует закрывающейся. б) Первый и последний символ...
C++ Чтение файла
Как в си прочитать файл побайтово?
C++ как сравнить даты?? http://www.cyberforum.ru/cpp-beginners/thread112784.html
допустим у меня есть две даты.как определить какая из них больше?? например char data; char Data; strcpy(data,"10.10.2010"); strcpy(Data,"20.10.2009"); //как их сравнить???
C++ Как прочитать из файла большой объем чисел (килобайт 200) ? как прочитать из файла большой объем чисел (килобайт 200) ? т.е. как реализуется это на си? например, есть файл input.txt в нем лежит набор чисел. Программа считывает его и выполняет какие то действия, например сортирует.. Приведите примеры пожалуйста. подробнее

Показать сообщение отдельно
Fujiwara no Sai
 Аватар для Fujiwara no Sai
9 / 9 / 0
Регистрация: 03.04.2010
Сообщений: 22
05.04.2010, 16:21     разбить строку в массив
Не правильно выводишь конечный массив. В строке 9 ты делаешь разбиение строки слов на отдельные слова, и каждое слово записываешь в новую строку двумерного массива. Т.е., строка Heavy metal rulit, введенная в программу, будет преобразована так: Heavy запишется в первую строку двумерного массива, metal - во вторую, rulit - в третью. Причем, поскольку в эту строку(mas1[]) не введено 100 символов, то оставшееся место, у меня, например, будет заполнено значением 52(если рассматривать в аски-коде). Естественно, что когда мы этот массив запишем в двумерный, эти "остатки" никуда не пропадут, и допишется в каждую строку в конце. И когда ты начнешь выводить на экран двумерный массив, то у тебя выведутся и эти символы тоже. В общем, я тут в твою программу добавил пару циклов вывода на экран(для контроля). Запустишь - поймешь про что я говорю. И последнее, я бы на твоем месте не стал использовать функцию gets(), т.к. способа ограничить число символов, полученное через эту функцию - нет. Это значит, что в случае очень длинной строки может быть переполнение массива. Есть функция fgets() - у нее синтаксис немного сложнее, но зато таких проблем нет.

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# include <iostream>
# include <conio.h>
 
using namespace std;
 
int main()
{
    int i,j,g;
    char mas1[100],mas2[10][10];
 
    cout<<"Vvedite stroku ";
    gets(mas1);
    cout<<endl;
 
    //Выведем на экран то, что ввели
    for(int i=0;i<99;i++)
    cout<<mas1[i];
 
    //перепишем в двумерный массив
     j=0;g=0;
     for(i=0;i<99;i++)
    {
        if(mas1[i]==32)
        {
            j++;
            g=0;
        }
                else 
        {
            mas2[j][g]=mas1[i];
            g++;
        }
    }; 
   
    _getch();
 
    //выведем двумерный массив на экран
    for(i=0;i<10;i++)
    {
        cout<<"\nNovaya stroka: ";
        for(j=0;j<10;j++)
            cout<<mas2[i][j];
    }
 
    //выведем двумерный массив в аски-коде, чтобы было понятно что будет записано в
        //"пустое" место в конце
    for(i=0;i<10;i++)
    {
        cout<<"\nNowayz stroka: ";
        for(j=0;j<10;j++)
            cout<<(int)mas2[i][j];
    }
        _getch();
    return 0;
}
 
Текущее время: 08:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru