Запись в массив нескольких строк

Здесь приведен пример как в один массив можно записать сразу несколько строк. Идея, реализованная в приведенном программном коде, достаточно проста. Состоит она в том, что в символьный массив вносится подряд несколько строк, а в качестве разделителей используются нуль-символы. Для записи строк в массив и извлечения строк из массива в программе определяются две функции. Функция StringIn() используется для занесения строк в массив, а функция StringOut() нужна для извлечения строк из массива.

Пример. Запись в массив нескольких строк
#include 
#include 
using namespace std;
/*Функция для внесения строки в массив.
Аргументы функции – массив str1 для внесения строки,
вносимая строка str2, а также порядковый индекс n строки*/
void StringIn(char *str1,char *str2,int n){
//Поиск позиции в массиве для записи строки
while(n!=0){
 if(!(*str1)) n--;
 str1++;}
//Запись строки в массив
while(*str2){
 *str1=*str2;
 str1++;
 str2++;
}
//Запись нуль-символа в конец строки в массиве
*str1='\0';
}
/*Функция для выведения на экран строки из массива.
Аргументы функции – массив str, из которого извлекается строка,
а также порядковый индекс n извлекаемой строки*/
void StringOut(char *str,int n){
//Поиск начала извлекаемой строки
while(n!=0){
 if(!(*str)) n--;
 str++;
}
//Выведение строки на экран
cout << str << endl;
}
//Проверка работы созданных функций
int main(){
int i;
//Массив для записи нескольких строк
char str[120];
//Массив для считывания вводимой пользователем строки
char s[30];
//Запись строк в массив
for(i=0; i < 3; i++){
 cout << "Enter a string: ";
 gets(s);
 StringIn(str,s,i);}
StringIn(str,"One more string",3);
//Считывание строк из массива
for(i=0; i <= 3; i++)
 StringOut(str,i);
return 0;
}
Онлайн всего: 7
Гостей: 7
Пользователей: 0

STUDLAB Сообщить про опечатку на сайте