Как найти пустые(не занятые) элементы в char массиве?
Имеется char массив состоящий из 16 символов, например содержащий слово "Cats", остальные 12 элементов не использовались, как найти кол-во незанятых элементов?
Моя цель это копировать такое слово в другой массив без этих элементов, то есть нужно знать их кол-во.
Заметаться что размер слово изначально не известен и там может быть любое слово, не более массива конечно-же.
Копировать Си строки можно с помощью strcpy() или других аналогичных функций - она скопирует только значимые элементы строкового буфера, включая завершающий символ '\0'.
Герман, Вы пытаетесь работать с объектом string так же как и с Си строкой. Не стоит так делать - это разные вещи.
Ну и вообще строка в Си кончается, на первом символе '\0', дальше ее выводить уже не нужно - там мусор.
Герман, ну хоть так.
теперь видно, что в начале у вас идут 7 символов (6 букв и один символ перевода строки после них), затем нулевой байт конца строки. то, что после нулевого байта конца строки - неинициализированные элементы массива, которые при запуске программы могут иметь любое значение. если вам хочется, чтобы в конце массива было "0 0 0 0 0 0 0 0 0", то вам следует перед началом работы с массивом самому инициализировать его нулями.
Вопрос за вопрос - какое значение у незанятых элементов массива?
Ответ - если вы не проинициадизировали массив значениями - то неизвестно (обычно).
Следовательно - заполняем массив чем то, что нам извезтно. Копируем туда cats. Считаем количество того, что нам известно, в цикле.