我有一個奇怪的錯誤與我的字符串的長度。我對此很新,所以這可能是我錯過的一些基本知識。反轉C壞字符串中的字符串
我想寫一個程序,它獲取一個指向字符數組的指針(IE的第一個字符的字符串),它返回一個指向與第一個字符大小相同的字符串的指針,但這些字母是逆轉。例如,計算機將成爲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;
}
提示:在你的長度函數中,'i'和'length'將會是相同的,所以不妨使用'i'。 – 2013-04-23 21:48:34
您寫了length_of_string而不是僅僅使用標準strlen()函數的任何特定原因? – 2013-04-23 21:51:22
@MarcB:對,我沒有注意到。感謝您的貢獻。 – 2013-04-23 21:53:06