Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Определить размер строки / 14 сообщений из 14, страница 1 из 1
06.05.2004, 11:06
    #32508653
Муковоз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
есть указатель
char *s;
s = "sdfsdhfjh";

как определить размер строки s ?
_____________________________________
Хорошо жить хорошо когда жизнь хороша
...
Рейтинг: 0 / 0
06.05.2004, 11:16
    #32508670
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
strlen
правда строка должна нулем заканчиваться
...
Рейтинг: 0 / 0
06.05.2004, 11:37
    #32508728
Муковоз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
немного усложню вопрос
есть указатель на строку типа
параметр значение
как выкусить справа и слева пробелы, табуляцию и выкусить сцепку параметр - значение ?

_____________________________________
Хорошо жить хорошо когда жизнь хороша
...
Рейтинг: 0 / 0
06.05.2004, 11:48
    #32508747
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
stl не противоречит моральным принципам?

std::string
...
Рейтинг: 0 / 0
06.05.2004, 11:49
    #32508749
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
поясню.
это то , что можно поискатьв инете
...
Рейтинг: 0 / 0
06.05.2004, 12:25
    #32508857
Муковоз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
эхе хех - противоречит :(
я делаю так: и выгребаю кучу косяков :(

char *config::leftrighttrim(char *str)
{
printf("-------------------------------\n");
char *s,*t;
// deleting first delemiters
while ((*str == ' ')||(*str == '\t')) {
str++;
}
printf("str:%s\n",str);

//finding last symbol except spase, tab and new line
int len = strlen(str);

s = new char[len];
t = s;

while (*str)
{
printf("%c ", *str);
*t++ = *str++;
}

printf("s :%s\n",s);

// in s adress of the first symbol from the end
// mooving symbols between start and stop into the new result
len = s-str+1;
char *res;
res = "111";
res = new char[len];
for (i=0; i<len; i++)
res = str;
printf("new: %s\n",res);

return res;
}
_____________________________________
Хорошо жить хорошо когда жизнь хороша
...
Рейтинг: 0 / 0
06.05.2004, 12:27
    #32508862
Муковоз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
на самом деле тут коментарии немного в разлете от кода но косяки лезут на попытке переноса данных из одной строки в другую
_____________________________________
Хорошо жить хорошо когда жизнь хороша
...
Рейтинг: 0 / 0
06.05.2004, 12:56
    #32508932
Их есть у меня
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
очень интересно:

len = s-str+1; // и len указывает в Космос

for (i=0; i<len; i++)
res = str; //зачем это присваивание делать len-1 раз???

и прочее.....

все как-то не очень связанно получается :)



Задача какая собсна (что на входе и что на выходе быть должно???)
...
Рейтинг: 0 / 0
06.05.2004, 13:20
    #32508991
Муковоз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
да да я как раз щас все это правлю в правильный вид
_____________________________________
Хорошо жить хорошо когда жизнь хороша
...
Рейтинг: 0 / 0
06.05.2004, 16:18
    #32509452
Муковоз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
трималка с двух сторон
char *config::leftrighttrim(char *str)
{
// left trim
while ((*str == ' ')||(*str == '\t')) {
str++;
}
int i;
int len;
for (i=strlen(str); i>=0; i--){
if ((str !=' ')&&(str!='\t')&&(str!='\n')){
len = i;
break;
}
}

char *tempstr;
tempstr = new char[len];
strncpy(tempstr, str, len);
tempstr[len] = '\0';
return tempstr;
}
_____________________________________
Хорошо жить хорошо когда жизнь хороша
...
Рейтинг: 0 / 0
07.05.2004, 08:31
    #32510033
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
char* getWord( char* str, int index )
{
    char* ptr = str;
    char   seps[]   = " ,\t\n.;:";
    ptr = strtok( str, seps );
    while(index -- && (ptr = strtok(NULL, seps)));
 
    return ptr;
}
это функция, получающая index-ное слово из строки
все разделители перечислены в seps[].
Можно напрямую эту функцию вызвать в цикле и полученные слова складывать через strcat или просто правильно её переделать.
...
Рейтинг: 0 / 0
07.05.2004, 11:32
    #32510372
Муковоз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
а вот и вариант решения разбора файла
с выкусыванием связки команда - аргумент

char *config::leftrighttrim(char *str)
{
char *s;
s = str;
// left trim
while ((*s == ' ')||(*s == '\t')) {
s++;
}
int i;
int len;
for (i=strlen(s); i>=0; i--){
if ((s !=' ')&&(s!='\t')&&(s!='\n')){
s='*';
len = i-1;
break;
}
}

char *tempstr;
tempstr = new char[len];
strncpy(tempstr, s, len);
return tempstr;
}

char *config::LowStr(char *str)
{
char *tempstr;
tempstr = new char[strlen(str)];
int i;
for (i=0; i<strlen(str); i++){
tempstr = tolower(str);
}
return tempstr;
}

char *config::getCommand(char *str)
{
char *c;
char *resstr;
c = str;
int i;
int len=0;
for (i=0; i<strlen(c); i++){
if ((c==' ') || (c== '\t')){
len = i;
break;
}
}
if (len != 0) {
resstr = new char[len];
strncpy(resstr,c,len);
} else resstr="not the command";
return resstr;
}

char *config::getParam(char *str)
{
char *s;
s = str;
int i,pos;
pos = 0;
// searching first spase delemiter
for (i=0; i<strlen(str); i++){
if ((s[0] != ' ')&&(s[0] != '\t'))
s++;
else {
pos = i;
break;
}
}
if (pos != 0) {
// searching first symbol
for (i=0; i<strlen(str)-pos; i++){
if ((s[0] == ' ') || (s[0] == '\t'))
s++;
else {
return s;
break;
}
}
}
s = "no parameter";
return s;
}
_____________________________________
Хорошо жить хорошо когда жизнь хороша
...
Рейтинг: 0 / 0
07.05.2004, 12:01
    #32510455
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
юзай
Код: plaintext
[src] код [/src ]

естесвенно перед ] пробела не надо :)


 ш
(';')
(V),(V),,
Код: plaintext
 JS 
...
Рейтинг: 0 / 0
07.05.2004, 17:33
    #32511060
CEMb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить размер строки
Гы!
В честь определения размера строки, юзанья [SRC] и дня рожденья Дэйва Гехэна - с празником! :)

Да простят меня админы за оффтоп,

А если не простят, то
2 Муковоз:
используя strtok можно короче это сделать.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Определить размер строки / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]