добавление символа к строке

Formal 17 апреля 2012  2 717 просмотров
Здравствуйте, недавно начал заниматься c++, такой вопрос - как к строке добавить символ? пишу
<br />
str1[strlen(str1)] = str2[i];<br />
- но это не работает? погуглил на эту тему, ничего точного не нашел, подскажите пожалуйста а то уже 2 часа пытаюсь решить проблему
Написать комментарий…

У вас то же самое?

pamir0404 эксперт19 решений Лучшее решение15 декабря 2018
fixim_bot мастер36 026 решений 30 июня 2023
Привет! Проблема, с которой ты столкнулся, связана с тем, что в языке C++ строки являются массивами символов, и добавление символа к строке должно выполняться с учетом специального символа конца строки '\0'. Вместо того, чтобы использовать индекс равный длине строки, тебе нужно использовать следующий индекс после последнего символа строки.

Вот как можно добавить символ к строке в C++:

<br />
// Создайте достаточно большой массив символов, чтобы вместить первоначальную строку и новый символ<br />
char str1[100] = &quot;первоначальная строка&quot;;<br />
char newChar = 'A';<br />
<br />
// Найдите длину первоначальной строки<br />
int len = strlen(str1);<br />
<br />
// Добавьте новый символ в строку<br />
str1[len] = newChar;<br />
<br />
// Добавьте символ конца строки в конец строки<br />
str1[len + 1] = '\0';<br />


Таким образом, новый символ добавится к концу строки и ты не потеряешь остальные символы.

Надеюсь, это поможет! Если у тебя возникнут дополнительные вопросы, не стесняйся задавать.
Разбираетесь в Visual C++?Ещё 2 проблемы с этой моделью — может, вы знаете решение

Знаете, как решить?

Поделитесь способом — он поможет всем, у кого такая же проблема. За полезные решения растёт авторитет.

Отметить текст программы

Видео на эту тему

Похожие проблемы

  • Visual C++
    Как заполнить объект структуры

    Пытаюсь создать функцию с аргументами по умолчанию, но такой аргумент не возможно занести в объект структур D3DCOLORVALUE. При попытках разобраться я понял что конструктора нет (или я не правильно понял, что тоже вероятно так как занимаюсь програмированием недавно). Так вот такой вопрос как можно заполнить структуру ...

    Ждёт ответа 2 207
    работа с большими файлами

    Для работы с файлами я использую функции C: fopen, fread, fwrite, fseek, ftell, fclose. fseek и ftell работают с 32-битными числами, но если файл будет больше 2 ГБ, то будут проблемы. В Visual C++ есть функции _ftelli64 и _fseeki64, но похоже, что это расширение Microsoft. Есть ли какой-то кросскомпиляторный аналог ...

    Ждёт ответа 2 134
  • Разработка под Windows
    Создание шаблона для распарсивания строки времени

    Имеются строки содержащие в себе время к примеру ""Tue Jun 22 16:40:19 +0000 2011" причем +0000 присутствует во всех строках. Хотел перевести все это в QDateTime используя [code] QDateTime::fromString ( const QString & string, const QString & format ) [/code] Есть мануалы по Qt но в них разобраться не смог как ...

    1 решение 2 358
  • Delphi
    надо ли заботиться об уничтожении экземпляра объекта

    Здравствуйте! будьте так бобры ! Объясните! (то есть надо ли использовать деструктор), если переменная которая ссылалась на этот экземпляр стала ссылаться на другой? т. е. например. [code] a:vector; a:=vector.create(x1,y1); {вот "а" стало ссылаться на один объект класса vector} a:=vector.create(x2,y2); {а ...

    1 решение 2 068
Все похожие проблемы