Как с помощью strtok удалить в массиве первое и последнее слово? - C (СИ)
Формулировка задачи:
Как с помощью strtok удалить в массиве первое и последнее слово? Даже представить себе не могу...
Прочитал про strtok,но стало непонятно, где-нибудь вообще хранятся возвращённые значения или они только для пользователя на экран выводятся?иИ как сделать чтобы они сохранились... Чтобы например в istr[3] первый эл-т был istr[0]=test1, второй istr[1]=test2 и.т.д.... Вот пример:
#include "stdafx.h"
#include <iostream>
#include < stdio.h > // Для printf
#include < string.h > // Для strtok
int main (void)
{ setlocale(LC_CTYPE,"");
// Массив со строкой для поиска
char str [24]="test1/test2/test3/test4";
// Набор символов, которые должны входить в искомый сегмент
char sep [10]="/";
// Переменная, в которую будут заноситься начальные адреса частей
// строки str
char *istr;
char *next_token1 = NULL;
printf ("Исходная строка: %s\n", str);
printf ("Результат разбиения:\n");
// Выделение первой части строки
istr = strtok_s (str,sep,&next_token1);
// Выделение последующих частей
while (istr != NULL)
{
// Вывод очередной выделенной части
printf ("%s\n",istr);
// Выделение очередной части строки
istr = strtok_s (NULL,sep,&next_token1);
}
/*
for(int i=0;i<=25;i++)
{
}
*/
system("pause");
return 0;
}Решение задачи: «Как с помощью strtok удалить в массиве первое и последнее слово?»
textual
Листинг программы
for(int i=0; arrstr[i]; i++)
{
if((i==0)||(i==(12)))
{
arrstr[i]=" ";
}
}
Объяснение кода листинга программы
В данном коде выполняется следующая последовательность действий:
- Проход по массиву arrstr, начиная с индекса 0 и до тех пор, пока arrstr[i] не станет пустой строкой (то есть, не будет равно NULL).
- Проверка условия: является ли текущий индекс первым (0) или последним (12).
- Если условие выполняется, то в текущий элемент массива записывается пустая строка
`. Таким образом, данный код удаляет первое и последнее слово из массива arrstr, заменяя их на пустую строку`.