gpt4 book ai didi

c - 从 C 中具有多个 NULL '\0' 的函数返回字符串

转载 作者:太空宇宙 更新时间:2023-11-04 03:44:31 25 4
gpt4 key购买 nike

我正在压缩字符串。并且压缩字符串有时在结尾 NULL 之前包含 NULL 字符。我想返回字符串直到 null 结束。但是压缩器函数正在返回字符串,直到出现第一个 NULL。请帮助我。

char* compressor(char* str)
{
char *compressed_string;
//After some calculation
compressed_string="bk`NULL`dk";// at the last here is automatic an NULL we all know
return compressed_string;
}
void main()
{
char* str;
str=compressor("Muhammad Ashikuzzaman");
printf("Compressed Value = %s",str);

}

输出是:压缩值= bk;压缩函数中的所有其他字符都不在这里。有没有办法显示所有的字符串。

最佳答案

该函数返回“整个字符串”。 printf 输出它直到遇到空字符。

你可以这样定义函数

char * compressor( const char* source, size_t *result_len );

要理解问题,请考虑以下代码

#include <stdio.h>

char * compressor( const char* source, size_t *result_len )
{
char *compressed_string = "bk\0dk";
*result_len = sizeof( "bk\0dk" );

return compressed_string;
}


int main( void )
{
char* str;
size_t n;

str = compressor( "Muhammad Ashikuzzaman", &n );

int i;
printf( "Compressed Value = " );

for ( char *p = str; n; n -= i + 1, p += i + 1 )
{
i = printf( "%s", p );
}

return 0;
}

输出是

Compressed Value = bkdk

关于c - 从 C 中具有多个 NULL '\0' 的函数返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25835422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com