笔试题:
字符串翻转问题: 给定一个 “hello world”,将字符串翻转输出“world hello”;
#include <iostream> #include <stdlib.h> using namespace std; char str[] = "This translation ah well"; inline void swapstr(char &a,char &b) { a=a^b,b=a^b,a=a^b; } void stringreverse(char *s,int n) { int i,j; for(i=0,j=n-1;i<j;i++,j--) swapstr(s[i],s[j]); } void print(char *s) { int i=0; for(i=0;i<strlen(s)&&s[i]!='\0';i++) cout<<s[i]; cout<<endl; } int main() { int i; int n=strlen(str); stringreverse(str,n); print(str); for(i=0;str[i]!='\0'&&i<strlen(str);i++) { int j=0; while(str[i]!=' '&&str[i]!='\0') j++,i++; stringreverse(str+i-j,j); } print(str); return 0; }
注:如验证有问题,还请提出;谢谢~~~