конкатенация строк - PullRequest
       2

конкатенация строк

2 голосов
/ 27 сентября 2010

У меня есть вложенный цикл for, и мне нужно преобразовать полученный результат в строку. Как мне это сделать?

например. Мой цикл дает сотни значений чисел, таких как:

192 168 11 248
192 168 11 249
192 168 11 250
192 168 11 251
192 168 11 252
192 168 11 253
192 168 11 254
192 168 11 255

Как объединить каждое значение как 192.168.11.248 и т. Д.

Обычно каждое значение необходимо преобразовать из целого числа в строку.

Ответы [ 4 ]

3 голосов
/ 27 сентября 2010

Поскольку это домашнее задание, я не буду публиковать полный код, только несколько советов: функции, которые вы ищете: snprintf, безопасная версия sprintf.Преимущество состоит в том, что вы также можете выполнять конкатенацию и точки с ней.

В качестве альтернативы вы можете комбинировать itoa и strncat , но itoaне является стандартной функцией.

0 голосов
/ 27 сентября 2010

Если вам просто нужен вывод, вы можете сделать это без объединения. Выведите каждое целое число и точку (.), кроме последнего целого числа. Псевдокод:

Print 192 "."
    Print 168 "."
        Print 11 "."
            Print 249 "\n"
0 голосов
/ 27 сентября 2010

Если они генерируются целыми числами, вы можете использовать itoa и просто добавить результат к массиву символов достаточного размера с помощью strcat .

Примечание: itoa нестандартная, но она также широко распространена и широко используется и поставляется многими поставщиками как нестандартное расширение библиотеки. Имейте в виду, это означает, что незначительные изменения нестандартного поведения могут вызвать серьезные проблемы в реальных приложениях. Однако, если вы пишете домашнее задание для одной платформы, вы, скорее всего, не столкнетесь с такими проблемами. Важно знать об этом и знать, что оно не выдержит в реальном мире (не предоставление этого предупреждения было дефектом в первоначальном ответе).

Существуют и другие методы, главным из которых является snprintf (с преимуществом стандартного поведения), но для целей простого упражнения я решил указать вам самые простые методы.

Существуют потенциальные проблемы с некоторыми из широко распространенных реализаций itoa, которые могут возникать в крайних случаях, но вероятность того, что это произойдет с 3-значными положительными целыми числами, равна ... Slim.

Несмотря ни на что, прочитайте snprintf , поскольку это, вероятно, более полезно в ваших исследованиях C, или если ваша среда поддерживает это, рассмотрите возможность изучения C ++ и Boost, так как мой первый комментарий указывает на менее подверженный ошибкам решение на этом языке. Преимущество C ++ состоит в том, что он позволяет использовать безопасный для типов метод специализации приведений, когда snprintf может быть легко использован неправильно (как и все, что использует ... и полагается на строку формата).

0 голосов
/ 27 сентября 2010

Вам необходимо изучить методы itoa и strncat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...