C 문자열에 문제가 있습니다. 배열이 char char_array[256] = {0}
입니다.C char [] 및 * char
나는 char 요소로이 배열을 완성했다. 이 요소를 인쇄 할 때 printf("%c", char_array[0]);
, printf("%c", char_array[1]);
등 값이 정확합니다. 그러나 printf("%s", char_array);
을 인쇄하려고하면 아무 것도 인쇄되지 않습니다 ...
또한 기능이 void function(char* char_pointer)
입니다. 데이터 strcpy(char_pointer, char_array)
을 반환하려고합니다. 하지만 아무것도 반환하지 않습니다 ...
제발, 어떻게 함수에서 데이터를 반환하는 데 도움이, 나중에, 외부 함수, 나는 printf("%s", char_pointer_from_function)
을 인쇄 할 수 있습니까?
UPDATE :
가기능 :
void unmarshal_packet(char *packet)
{
char packet_size_string [10] = {0};
char unmarshaled_data [2000] = {0};
int counter = 0;
while (packet[counter] != ':' && counter < strlen(packet))
{
packet_size_string[counter] = packet[counter];
counter++;
}
counter = strlen(packet_size_string) + 1;
for (counter; counter < strlen(packet); counter++)
{
if ((packet[counter] != '\r') && (packet[counter] != '\n'))
{
unmarshaled_data[counter - (strlen(packet_size_string) + 1)] = packet[counter];
}
}
// printf("%c", unmarshaled_data[0]);
// printf("%c", unmarshaled_data[1]);
// printf("%c", unmarshaled_data[2]);
// printf("%c", unmarshaled_data[3]);
// printf("%c", unmarshaled_data[4]);
// printf("%c", unmarshaled_data[5]);
// printf("%c", unmarshaled_data[6]);
// printf("%c", unmarshaled_data[7]);
// printf("%c", unmarshaled_data[8]);
// printf("%c", unmarshaled_data[9]);
printf("%s", unmarshaled_data);
unmarshaled_data[counter - (strlen(packet_size_string) + 1)] = '\0';
strcpy(packet, unmarshaled_data);
}
함수 호출 :
strcpy(buffer, " \nWellcome to Yes/No game server! \n");
unmarshal_packet(buffer);
코드를 입력하십시오. –
@Jacob Jones 관련 코드를 기입하십시오. –
'% s '은 일련의 null이 아닌 문자 뒤에 null 문자가 오는 * 문자열 *을 출력하는 것을 의미합니다. null 문자를 발견하면 인쇄가 중단되며 인쇄 할 수없는 문자 (예 : 캐리지 리턴)에 대해서는 놀라운 결과가 나타날 수 있습니다. –