// 180522 Вопрос: Калашников О.А. Ответ: lamed
// Предположим, что некоторая функция возвращает указатель на текстовую
// строку, которая доподлинно известно содержит следующее:
// 123\0обычный текст\0
// где \0 - это NULL.
// Вопрос такой. Необходимо в переменную типа int поместить первую часть
// текста (т.е. "123") и в переменную типа char вторую часть - "обычный текст\0".
// Как на ваш взгляд это может быть организовано?
#include <stdio.h>
int main(void)
{
int num;
char s[40];
char *t="123\0обычный текст";
int i;
int j=0;
for (i=0, num=0; t[i]!='\0'; i++)
num = num * 10 + (t[i]-'0');
i++;
while ((s[j++]=t[i++])!='\0')
;
puts(s);
printf("%d\n", num);
system("pause");
return 0;
}
Для продолжения нажмите любую клавишу . . .
обычный текст
123
#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;
}
char *psz = strtok(szData, " "); // режем по пробелу
do
{
ps[size++] = psz;// для примера
}
while(psz = strtok(NULL, " ")); //... и продолжаем по пробелу резать дальше
//... psz будет каждый раз содержать указатель на новый кусочек
psz = strtok(szText, _T("\t\n;,."));
//...
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.