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

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

Восстановить пароль Регистрация
 
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
03.02.2011, 20:22     Присоединение текста к массиву char #1
Не пойму почему это не работает:
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 на опред. этапе берёт да и перезаписывает строку вместо того чтобы дописать до неё другую. Почему так? Я хотел чтобы каждый цикл всё дописывалось в строку а потом выводилось в конце цикла.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2011, 20:22     Присоединение текста к массиву char
Посмотрите здесь:

Сравнивание и присоединение строк C++
почему часть текста исчезает ? переменная char и цикл C++
Конкатенация (присоединение) стеков C++
Не получается присвоить значение двумерному массиву char C++
Ошибка при присваивании массиву char значения C++
Присвоение массиву char константной и неконстантной строки C++
Считывание текста из файла text в массив char C++
Как присвоить массиву Char строку TextBox->Text ? C++
Присоединение к потоку C++
Как переменной Char присвоить значение целого текста? C++
C++ Как переменной Char присвоить значение целого текста полученого из файла?
Не могу разобраться как реализовать функцию инициализации даты по веденному массиву char C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Somebody
2775 / 1588 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 1
03.02.2011, 20:34     Присоединение текста к массиву char #2
Ничего, что в 26-й строке strcpy?
Алексaндр
 Аватар для Алексaндр
131 / 108 / 5
Регистрация: 04.12.2010
Сообщений: 313
03.02.2011, 20:35     Присоединение текста к массиву char #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;
Gepar
 Аватар для Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
03.02.2011, 20:55  [ТС]     Присоединение текста к массиву char #4
Somebody, не заметил, я всё к правой части присматривался (где указатели), теперь понятно что не так. Спасибо.
Кстати никакого более хитрого способа пробел дописывать нет в данной ситуации ?
Yandex
Объявления
03.02.2011, 20:55     Присоединение текста к массиву char
Ответ Создать тему
Опции темы

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