만약 내가 C에서 2 문자열을 연결하려면, 나는 모든 문자열 또는 하나의 여분의 null을 할당해야하나요?얼마나 많은 null 바이트, C에서 문자열을 연결
int main(){
char *s1 = NULL;
char *s2 = NULL;
char *s1_s2 = NULL;
s1 = malloc(sizeof(char) * strlen("string1") + 1);
strcpy(s1, "string1");
s2 = malloc(sizeof(char) * strlen("string2") + 1);
strcpy(s2, "string2");
s1_s2 = malloc(sizeof(char) * (strlen(s1) + strlen(s2)) + 2); // shouldn't it be only 1 null char ?
strcpy(s1_s2, s1);
strcat(s1_s2, s2);
}
는 this 질문에, 그들은 각각의 문자열이 널 (null) 바이트를 사용합니다. 어떤 사람이 빛을 비춰 줄 수 있습니까? 감사합니다.
문자열 터미네이터가 하나뿐이므로 모든 문자열에는 한 개의 추가 바이트 만 필요합니다. 당신의 예제에서's1_s2'도 마찬가지입니다. –
좋습니다. 알겠습니다. 감사! –