Я пытался реализовать strcat()
, поэтому я придумал этот код. Но, я не знаю, что в этом плохого? Это дает мне ошибку сегментации.Что не так с моей операцией сцепления?
Я думал, что это может быть беспорядок распределения памяти? Это оно? Как я могу исправить это, не используя malloc()
?
#include <stdio.h>
char *strcat(char *s,char *d){
while(*s++ != '\0') ;
while(*s++ = *d++) ;
*s = '\0';
return s;
}
int main(){
char s[20]= "source";
char d[20]= "dest";
printf("%s\n",strcat(s,d));
return 0;
}
Я должен Concat d
опережая s
.
так что я должен использовать таНос? –
Нет, достаточно определить 's', чтобы он удерживал обе строки плюс нулевой ограничитель:' char s [11] = "source" ', например. –
Также вы путаете источник и назначение: вы добавляете пункт назначения в источник. – 4LegsDrivenCat