两种方式,第一,通过指针;第二,通过数组下标
void LoopMove(char * l,char * r) { char temp; while(l<r) { temp = *l; *l = *r; *r = temp; ++l; --r; } } void ReverseStr(char * str) { char *l,*r; r = str; l = str; LoopMove(l,r+strlen(str)-1); while(*r!='\0') { l = r+1; r = l; while(*r!=' ' && *r!='\0') ++r; r = r-1; LoopMove(l,r); l = r+1; r = l; } } int main() { char str[]="i come from tianjin."; cout<<strlen(str)<<endl; ReverseStr(str); cout<<str<<endl; return 0; }
public class StrReverse { public static void main(String[] args) { // TODO Auto-generated method stub String str="hello i tianjin."; char []s = str.toCharArray(); reverseWord(s); System.out.println(new String(s)); } public static void reverseWord(char []s){ int l = 0; int r = 0; reverse(s,l,r+s.length-1); for(int i=0; i<=s.length;++i){ if(i==(s.length)||s[i]==' '){//注意顺序,否则越界错误 r = i-1; System.out.println(l+" "+r); reverse(s,r); System.out.println(new String(s)); l = i+1; } } } public static void reverse(char []s,int l,int r){ char temp; for(int i=0; i<=(r-l)/2; i++) { temp = s[l+i]; s[l+i] = s[r-i]; s[r-i] = temp; } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。