Создание массива на С/С++
Как сделать, что бы вводимая строка заносилась в массив ( каждое слово- новый элемент массива) ?
З. Ы. разрешено использовать только стандартную библиотеку
Как сделать, что бы вводимая строка заносилась в массив ( каждое слово- новый элемент массива) ?
З. Ы. разрешено использовать только стандартную библиотеку
strtok()
>З. Ы. разрешено использовать только стандартную библиотеку
iostream использую, и ниипёт.
#include
using namespace std;
int main()
{
int n=0,k=0; char* strarr[ 100];
char str[ 100]; char* temp=new char[ 100];
cin.get(str,100);
for (int i=0; i < strlen(str); i++)
{
if (str[ i]!=' ')
temp[ n++]=str[ i];
else if(str[ i]==' ' && str[ i+1]!=' ') //чтобы избежать косяков в случает более одного пробела
{
n=0;
strarr[ k]=new char[ strlen(temp)+1 ];
strarr[ k++ ]=temp; // ну или можно использовать strcpy, каждый элемент массива указателей - слово
delete [ ] temp;
}
}
return 0;
}
очень просто
// заводишь массив, для простоты - статический
// это массив из 10 строк, в каждой может быть не более 128 символов (с завершающим нулем)
char strings [10] [128];
// далее в цикле вводим строки
for ( i =0 ; i < 10; i++ )
{
gets ( strings [ i ] ) ; // вводит строку до символа перевода строки без проверки буфера на вместимость
// или так
// scanf ( " %s ", strings [ i ] ) ; // вводит строку до пробела
}