|
[PHP]
#include <stdio.h>
void rev(char* s, int ln, char* sr){
sr += ln-1;
for(;*s;s++,sr--) *sr=*s;
sr[ln] = '\\0';
}
int main(){
char *s="abcdefghijklmnopqrstuvwxyz";
ln = strlen(s);
char sr[ln+1];
rev(s,ln,sr);
printf("%s\n",sr);
}
[/PHP]
程序很简单,将字符串倒置,但是这个程序会丢掉第一个字符"a"。
如果把sr[ln]='\0'改成sr[ln+1]='\0'就没事了。但是我的sr的长度不是只有ln+1吗?sr[ln+1]为什么不越界? |
|