доброго времени и суток !!!
Я хотел спросить что дают скобки после имени метода и как создать переменную string в си (чистом си).
заранее спасибо.
(давно мучают эти вопросы)

2

viva_linuxoid пишет:

Я хотел спросить что дают скобки после имени метода

1. Это функция называется. Методы в C++.
2. ничего не дают. Это просто синтаксис. В паскале вот пишут begin, end. В bash'е пишут вот так:

case a in b
...
esac

if command; then
...
fi

ну а в C блок (несколько операторов) отделяют скобками.

например

if(УСЛОВИЕ)
{
  ОПЕРАТОР1;
  ОПЕРАТОР2;
}

оба оператора выполняются тогда, и только тогда, когда УСЛОВИЕ истинно (т.е. не равно нулю в C).

viva_linuxoid пишет:

как создать переменную string в си

никак.

Можно только сделать массив из символов.

const char str[] = "test string";

такой массив имеет тип char*, оканчивается символом \0, и его нельзя менять.

Можно сделать массивы и так, что-бы их содержимое можно было менять (но не размер)

char str2[256];

PS: сейчас набегут тролли, и скажут, что размер менять можно. Я знаю. В новом стандарте иногда можно. Но не нужно.

PPS: да, ещё можно выделить память функцией malloc(3) и потом удалить free(3).

PPPS: сейчас набигут... Короче, если кто набижать хочет -- лучше расскажите сами.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

Хм...
А с библиотеками можно как-то создать строковую переменную в си ?

4

viva_linuxoid пишет:

А с библиотеками можно как-то создать строковую переменную в си ?

нет.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

А на c++

6

можно сделать свою структуру (struct) string, и написать кучу функций для обработки этой структуры.

ещё можно считать строкой указатель на символ. С двумя допущениями:

1. это не просто указатель на символ, а указатель на массив, который имеет достаточный для строки размер.

2. строка оканчивается на \0, и в ней нет символов \0. И размер массива достаточен не только для строки, но и для \0 в конце.

тогда с такими "строками" можно юзать библиотеку glibc, и все функции, перечисленные в третьем разделе man pages. Например

+ открыть спойлер

STRCPY(3)                        Linux Programmer's Manual                       STRCPY(3)

NAME
       strcpy, strncpy - copy a string

SYNOPSIS
       #include <string.h>

       char *strcpy(char *dest, const char *src);

       char *strncpy(char *dest, const char *src, size_t n);

DESCRIPTION
       The  strcpy() function copies the string pointed to by src, including the terminat-
       ing null byte ('\0'), to the buffer pointed to by dest.  The strings may not  over-
       lap,  and  the  destination  string  dest must be large enough to receive the copy.
       Beware of buffer overruns!  (See BUGS.)

       The strncpy() function is similar, except that at most n bytes of src  are  copied.
       Warning: If there is no null byte among the first n bytes of src, the string placed
       in dest will not be null-terminated.

       If the length of src is less than n, strncpy() writes additional null bytes to dest
       to ensure that a total of n bytes are written.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

7

viva_linuxoid пишет:

А на c++

а на C++ есть стандартная STL, в которой есть нужный вам std::string. Но можно сделать и свой, с картами и девочками.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

Можно поточней ?

9

viva_linuxoid, думаю -- не нужно. Тема C++ очень сложна, и у меня нет времени её раскрывать. Да и здешние вахтёры наверное скоро меня опять забанят...

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

10

Ладно...

11

не. не забанили пока. Продолжаем веселье.

И да, C++ всё равно не рекомендую. Что вам в сишечке не нравится? Char* вполне годная замена стрингов. Сам Линус юзает, и нахваливает. И шлёт всех к такой-то матери, кто пожелает C++, или прочую ересь.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)