我对C字符串有个问题。我有数组char char_array[256] = {0}。
我用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)
更新:
功能:
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);发布于 2014-11-30 20:34:42
字符串是非空(ASCII值0)字符的序列,后面跟着指示字符串结束的这样一个字符。例如,如果您的第一个字符为NULL,则表示空字符串,因此不会打印任何内容。在打印之前,我不知道你在数组中放了什么,所以我不能说应该打印什么。
https://stackoverflow.com/questions/27217899
复制相似问题