Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный ХОСТИНГ на базе Linux x64 и Windows x64

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты данной рассылки

Гаряка Асмик
Статус: Профессор
Рейтинг: 5004
∙ повысить рейтинг »
Boriss
Статус: Академик
Рейтинг: 2533
∙ повысить рейтинг »
Абаянцев Юрий Леонидович aka Ayl
Статус: Профессионал
Рейтинг: 2006
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И СОФТ / Программирование / C/C++

Номер выпуска:1588
Дата выхода:05.11.2010, 22:30
Администратор рассылки:Verena (Профессионал)
Подписчиков / экспертов:336 / 173
Вопросов / ответов:1 / 2

Вопрос № 180522: Уважаемые эксперты! Ещё один вопрос из цикла уже заданных: слияние строк в С++ и объединение строки и целой переменной в С++.<...



Вопрос № 180522:

Уважаемые эксперты! Ещё один вопрос из цикла уже заданных: слияние строк в С++ и объединение строки и целой переменной в С++.
Предположим, что некоторая функция возвращает указатель на текстовую строку, которая доподлинно известно содержит следующее:
123\0обычный текст\0
где \0 - это NULL.
Вопрос такой. Необходимо в переменную типа int поместить первую часть текста (т.е. "123") и в переменную типа char вторую часть - "обычный текст\0".
Как на ваш взгляд это может быть организовано?
Спасибо!

Отправлен: 31.10.2010, 16:10
Вопрос задал: Калашников О.А. (Руководитель)
Всего ответов: 2
Страница вопроса »


Отвечает Vadim22 (5-й класс) :
Здравствуйте, Калашников О.А.!

если t это вернувшийся указатель, то целое можно получить следующим способом

i=atoi(t) Ограничение число должно вписываться в int. Если 32-разрядная система то в 2 с небольшим миллиарда. Если 16-разрядная, то в 65536. Также функция учитывает знак.

Для получения указателя на текст(char *)

c=t+strlen(t)+1;//к указателю прибавляем длину строки и он будет указывать на \0. Потом добавляем ещё единичку, чтоб указывал на начало текста.

Если разграничитель не символ конца строки, а просто не цифра, то подойдет функция strtol. И начало текста брать из 2го параметра.
Если условие границы не стандартно, то свой цикл преобразования в число.


Ответ отправил: Vadim22 (5-й класс)
Ответ отправлен: 31.10.2010, 16:41
Номер ответа: 263752

Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 263752 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:


  • Отвечает Гаряка Асмик (Профессор) :
    Здравствуйте, Калашников О.А.!

    Программа работает при указанных Вами условиях.
    Код:
    #include <stdlib.h>
    #include <stdio.h>
    #include <cstdio>
    #include <cstring>

    int main(int argc, char* argv[])
    {

    char *str="123\0обычный текст";
    int a;
    char *text=new char[100];
    sscanf(str,"%d",&a);
    strcpy(text,str+strlen(str)+1);
    delete[] text;
    return 0;
    }

    -----
    Я ни от чего, ни от кого не завишу.

    Ответ отправил: Гаряка Асмик (Профессор)
    Ответ отправлен: 31.10.2010, 17:57
    Номер ответа: 263754

    Оценка ответа: 5
    Комментарий к оценке:
    То, что надо! Спасибо!

    Вам помог ответ? Пожалуйста, поблагодарите эксперта за это!
    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 263754 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Ответ поддержали (отметили как правильный): 1 чел.



    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2010, Портал RFPRO.RU, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2010.6.22 от 02.11.2010

    В избранное