Блин, почему это не работает:
# 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, которая должна дописывать вторую строку к первой. Какого хрена она на опред. этапе берёт да и перезаписывает нафиг текущую строку? Или это у меня где-то здесь ошибка.
Добавлено позже:
Уже разобрался, у меня там по середине один strcpy был, что и сбивало всё.