gpt4 book ai didi

c - 在 C 错误输出中反转字符串

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

我的字符串长度有一个奇怪的错误。我在这方面还很陌生,所以我可能错过了一些基本的东西。

我正在尝试编写一个程序,它获取一个指向字符数组的指针(即字符串的第一个字符),它返回一个指向与第一个相同大小的字符串的指针,但字母被颠倒了.例如 Computer 将成为 retupmoC。 tacocat 将继续 tacocat :)

代码如下:

char* return_flipped_string(char* stringptr)
{
int i=0,size_of_string=length_of_string(stringptr);
char *flipped;
flipped=(char *)malloc(size_of_string*sizeof(char));
while(i<size_of_string)
{
*(flipped+i)=*(stringptr+size_of_string-1-i);
i++;
}
return flipped;
}

stringptr 是指向原始字符串的指针,flipped 是我返回的那个。当我打印翻转的字符串时,它显示原来的字符串被翻转,然后是无法区分的乱码。由于某种原因,它们的尺寸不同。

这是我为查找字符串的长度而编写的代码(工作正常)

int length_of_string(char* stringptr)
{
int length=0,i=0;
while(*(stringptr+i)!='\0')
{
length++;
i++;
}
return length;
}

最佳答案

您需要在翻转后的字符串末尾附加一个空字节('\0')。翻转字符串数据缓冲区的长度是输入字符串的长度加一空字符串终止符字节。正是那个空字节告诉字符串在哪里结束。

关于c - 在 C 错误输出中反转字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16179731/

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