我剛學C和我想寫一個反轉字符數組(串)不是指數的功能,而是通過一個指針,沒有malloc的:在C扭轉了字符串指針
#include <stdio.h>
#include <string.h>
char* reverse(char* chararray)
{
char *forward = chararray;
char *reversed = &chararray[strlen(chararray)-1];
while (reversed > forward) {
char revTmp = *reversed;
char fwdTmp = *forward;
*reversed-- = fwdTmp;
*forward++ = revTmp;
}
return reversed;
}
int main()
{
char string[] = "dlrow olleh";
printf("%s\n",reverse(string));
return 0;
}
現在的輸出是world
,應該是hello world
- 但它在中間斷了,我不知道爲什麼。必須有一些我錯過了。
可能重複[在C中使用指針反轉字符串?](http://stackoverflow.com/questions/7544387/reversing-a-string-in-c-using-pointers) – Vineet1982
@ Vineet1982 - 重複點是他們回答了這個問題。提議的dup如何實現這一目標? OP正在使用大不相同的實現。 – StoryTeller