Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Rexer
165 / 164 / 46
Регистрация: 10.10.2010
Сообщений: 725
#1

Нужен исходный код, исходник функции strcat() - C (СИ)

16.11.2012, 18:31. Просмотров 2269. Ответов 7
Метки нет (Все метки)

Мне нужен исходный код,исходник функции strcat(); , которая в string.h библиотеке.
Помогите найти,а то я порылся в папке codeblocks-а и не нашел,буду рад любой помощи.
Спасибо!
http://www.cyberforum.ru/c-beginners/thread1448218.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 18:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Нужен исходный код, исходник функции strcat() (C (СИ)):

Простой арканоид - нужен исходник
Здравствуйте! Пишу арканоид на Си. Без дополнений, без уровней и без жизней....

Почему в Dev-C++ код не компилируется, если исходный код будет с расширением ".c"?
Почему в Dev-C++ код не компилируется, если исходный код будет с расширением...

Переделать исходный код с Си++ на Си
#include <iostream> #include<conio.h> int main() { setlocale(LC_ALL,...

Судоку на C выкладываю исходный код и игру
#include <stdio.h> #include <stdlib.h> #include <conio.h> #include...

Где можно найти исходный код функций и библиотек
Люди не подскажите где можно найти исходный код функций и библиотек си чтобы...

7
mokojumbot
158 / 158 / 30
Регистрация: 09.11.2012
Сообщений: 1,007
16.11.2012, 19:06 #2
https://www.delphij.net/fbdoxy/subsy...8c_source.html
1
Illusive
17 / 17 / 4
Регистрация: 11.01.2008
Сообщений: 51
16.11.2012, 19:06 #3
См. в конце ветки
http://www.cyberforum.ru/c-beginners/thread323662.html
1
Rexer
165 / 164 / 46
Регистрация: 10.10.2010
Сообщений: 725
16.11.2012, 19:22  [ТС] #4
Тогда вот этот момент мне не ясен,помогите разобраться,господа
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/***
*char *strcat(dst, src) - concatenate (append) one string to another
*
*Purpose:
*       Concatenates src onto the end of dest.  Assumes enough
*       space in dest.
*
*Entry:
*       char *dst - string to which "src" is to be appended
*       const char *src - string to be appended to the end of "dst"
*
*Exit:
*       The address of "dst"
*
*Exceptions:
*
*******************************************************************************/
 
char * __cdecl strcat (
        char * dst,
        const char * src
        )
{
        char * cp = dst;
 
        while( *cp )
                cp++;                   /* find end of dst */
 
        while( *cp++ = *src++ ) ;       /* Copy src to end of dst */
 
        return( dst );                  /* return dst */
 
}
Все грамотно очень написано,но где тут выделяется память?Вызов происходит функции же вот так
C
1
strcat(str1,str2);
у каждой строки свой конкретный размер,как же происходит сцепление без выделения памяти под str2 у str1?
0
Illusive
17 / 17 / 4
Регистрация: 11.01.2008
Сообщений: 51
16.11.2012, 19:48 #5
Да, без выделения памяти эта функция работать не будет,
надо поискать другие исходники

Добавлено через 8 минут
Оказывается все просто, читаем описание функции:
Функция strcat() добавляет строку str к строке dest,
перезаписывая символ `\0' в конце dest и добавляя к строке
символ окончания `\0'. Строки не могут перекрываться, а в
строке dest должно хватать свободного места для размещения
объединенных строк
.
1
Rexer
165 / 164 / 46
Регистрация: 10.10.2010
Сообщений: 725
16.11.2012, 19:58  [ТС] #6
Ну т.е память должна быть где-то там уже быть выделена,да?
0
Illusive
17 / 17 / 4
Регистрация: 11.01.2008
Сообщений: 51
16.11.2012, 20:03 #7
Именно!

Добавлено через 1 минуту
т.е. dst размещается в буфере, который имеет запас по размеру.
1
Байт
Эксперт C
17762 / 11787 / 2449
Регистрация: 24.12.2010
Сообщений: 23,704
16.11.2012, 20:08 #8
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Rexer Посмотреть сообщение
Ну т.е память должна быть где-то там уже быть выделена,да?
Совершенно верно! Но эту память ты должен выделить сам. Пример
C
1
2
3
4
5
6
 char *s1 = "aaaa",  *s2 ="bbbb";
 int n = strlen(s1) + strlen(s2) + 1;
char *dst;
dst = (char *)malloc(n);
strcpy(dst, s1);
strcat(dst, s2);
Не нравится? Пользуйся string, AnsiString, QString и прочими...
Или свою функцию пиши. Практически она уже написана...
2
16.11.2012, 20:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2012, 20:08
Привет! Вот еще темы с решениями:

Можно ли где нибудь найти исходный код функций из библиотек
меня интересует библиотека stdlib.h а в частности функция atof

Где можно найти готовый исходный код MD5 для файла?
MD5 - исходный код на СИ / С++? Где можно найти готовый исходный код MD5 для...

Strcat
Здравствуйте. У меня такой вопрос, как можно сложить две строки и записать их в...

Использование strcat
Есть 2 строки-массива типа char: tmp и buf. В цикле нужно соединить tmp и buf:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru