函数如下:
void reverse(char* str)
{
char * endOfString = str ;
char temp ;
if(str)
{
while(*endOfString)
{
++endOfString;
}
--endOfString ;
while(str < endOfString)
{
temp = *str ;
*str++ = *endOfString ;
*endOfString-- = temp ;
}
}
}
和这个输入:
int main()
{
char cStrg[3] = {'a','b','c'} ;
reverse(cStrg)
return 0 ;
}
输出如下所示:% %。如果我输入一个更大的字符,比如:char cStrg[6] = {'a','b','c','d','e','f'} ;
的输出是这样的:F d c b a,这很好,有人知道我在这里遗漏了什么吗?
char cStrg[3] = {'a','b','c'};
不是空终止字符串,如reverse
函数所期望的那样。您应该将其替换为char cStrg[4] = {'a', 'b', 'c', 0};
或char* cStrg = "abc";
C字符串-以