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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
#1

Присоединение текста к массиву char - C++

03.02.2011, 20:22. Просмотров 743. Ответов 3
Метки нет (Все метки)

Не пойму почему это не работает:
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
# include <iostream>
# include <iomanip>
# include <ctime>
# include <cstdlib>
using namespace std;
 
void space (char *);
int main()
{
    char temp[100]={0};
    char *article[]={"the", "a", "one", "some", "any"};
    char *noun[]={"boy", "girl", "dog", "town", "car"};
    char *verb[]={"drove", "jumped", "ran", "walked", "skipped"};
    char *preposition[]={"to", "from", "over", "on"};
    for(int i=1;i<20;i++)
    {
        strcpy(temp,article[rand()%5]);
        space(temp);
        strcat(temp,noun[rand()%5]);
        space(temp);
        strcat(temp,verb[rand()%5]);
        space(temp);
        strcat(temp,preposition[rand()%4]);
        space(temp);
        strcpy(temp,article[rand()%5]);
        space(temp);
        strcat(temp,noun[rand()%5]);
        cout<<temp<<endl;
    }
}
 
void space(char *a)
{
    strcat(a," \0");
}
Эта strcat на опред. этапе берёт да и перезаписывает строку вместо того чтобы дописать до неё другую. Почему так? Я хотел чтобы каждый цикл всё дописывалось в строку а потом выводилось в конце цикла.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2011, 20:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Присоединение текста к массиву char (C++):

Ошибка при присваивании массиву char значения - C++
В общем, требуется присвоить массиву чаров одно из нескольких значений (в зависимости от значения аргумента функции) и вывести этот массив...

Не получается присвоить значение двумерному массиву char - C++
объявляю двумерный массив (массив массивов в char для хранения имен файлов) в cpp файле char m_fname ; я хочу инициализировать...

Присвоение массиву char константной и неконстантной строки - C++
почему не работает ? как должно? string a; cout&lt;&lt;&quot;Vvedite slovo:&quot;; cin&gt;&gt;a; // a=&quot;dfsdf&quot;; char s=a; если...

Как присвоить массиву Char строку TextBox->Text ? - C++
Как сделать ?

Не могу разобраться как реализовать функцию инициализации даты по веденному массиву char - C++
//--------------------------------------------------------------------------- #pragma hdrstop ...

Считывание текста из файла text в массив char - C++
Такая проблема, есть файл с текстом There are many big and small libraries everywhere in our country. They have millions of books in...

3
Somebody
2791 / 1602 / 147
Регистрация: 03.12.2007
Сообщений: 4,197
Завершенные тесты: 1
03.02.2011, 20:34 #2
Ничего, что в 26-й строке strcpy?
1
Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
03.02.2011, 20:35 #3
C++
1
2
3
4
5
6
strcat(temp,preposition[rand()%4]);
        space(temp);
        strcpy(temp,article[rand()%5]);
        space(temp);
        strcat(temp,noun[rand()%5]);
        cout<<temp<<endl;
- это всё сбивает.

поменяй на

C++
1
2
3
4
5
6
 strcat(temp,preposition[rand()%4]);
        space(temp);
        strcat(temp,article[rand()%5]);
        space(temp);
        strcat(temp,noun[rand()%5]);
        cout<<temp<<endl;
1
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
03.02.2011, 20:55  [ТС] #4
Somebody, не заметил, я всё к правой части присматривался (где указатели), теперь понятно что не так. Спасибо.
Кстати никакого более хитрого способа пробел дописывать нет в данной ситуации ?
0
03.02.2011, 20:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2011, 20:55
Привет! Вот еще темы с ответами:

почему часть текста исчезает ? переменная char и цикл - C++
вот скрипт , которая пишет текст сверху вниз . но часть текста исчезает . я так понял , переменная может внести в себя весь текст , так как...

Как переменной Char присвоить значение целого текста? - C++
Пример текста: &quot;Верьте аль не верьте , а жил на белом свете Федот-Стрелец Удалой молодец......&quot;

Как переменной Char присвоить значение целого текста полученого из файла? - C++
файл input.txt текст &quot;ой мама не горюй&quot; использовать ifstream

Присоединение к потоку - C++
Присоединение к потоку - это приостановка потока выше на один уровень иерархии до конца работы другого? Т.е. когда мы вызываем t.join() в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru