我的字符串长度有一个奇怪的错误。我对此很陌生,所以这可能是我错过的基本内容。
我正在尝试编写一个程序,该程序获取一个指向字符数组(即字符串的第一个字符)的指针,并返回一个指向与第一个大小相同的字符串的指针,但字母是相反的。例如,计算机将变为 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 是指向原始字符串的指针,翻转的是我要返回的那个。当我打印翻转的字符串时,它显示原始字符串被翻转,然后是难以区分的乱码。由于某种原因,它们的大小不同。
这是我为查找字符串长度而编写的代码(正常工作)
int length_of_string(char* stringptr)
{
int length=0,i=0;
while(*(stringptr+i)!='\0')
{
length++;
i++;
}
return length;
}