Консультация № 188892
05.03.2016, 07:37
0.00 руб.
0 1 1
Здравствуйте, Уважаемые эксперты! Прошу помочь в написании кода функции
char* strncat(char* s, const char* ct, size_t n), которая приписывает не более n символов ct к s, завершая s символом '\0'. Возвращает s.
Заранее благодарен за помощь.

Обсуждение

давно
Посетитель
7438
7205
07.03.2016, 16:15
общий
это ответ
Здравствуйте, fridge!
Можно сделать, например, так:
Код:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
char* strncat(char* s, const char* ct, size_t);
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char ct[20], s[20]; //19 символов и завершающий 0
printf("Введите строку 1: ");
scanf("%s", s);
printf("Введите строку 2: ");
scanf("%s", ct);
printf("Результат: %s\n", strncat(s, ct, 19-strlen(s)));
return 0;
}

char* strncat(char* s, char* ct, size_t len)
{
char *w = &s[strlen(s)];
for(size_t i=0; i<len&&ct[i]; i++)
w[i] = ct[i];
ct[i] = 0;
return s;
}
5
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа