标签:cst iostream 笔试 name string abc ring class dea
在线笔试上 要自己解决输入问题 没有练习过真的很操蛋
第一遍很不顺利 记录一下
1 #include<iostream> 2 #include<string> 3 #include<cstring> 4 using namespace std; 5 6 void reverse(char* str, int start,int end){ 7 char temp = 0; 8 while(start < end){ 9 temp = str[start]; 10 str[start] = str[end]; 11 str[end] = temp; 12 start++; 13 end--; 14 } 15 } 16 17 int main() 18 { 19 20 char str[10000]; 21 memset(str,‘\0‘,10000); 22 cin.getline(str,10000); //注意读入的字符串中有空格 因此用getline 23 int len = strlen(str); 24 reverse(str,0,len-1); 25 26 int l = -1; 27 int r = -1; 28 for(int i = 0;i<len;i++){ 29 if(str[i] != ‘ ‘){ 30 l = i == 0 || str[i-1] == ‘ ‘ ? i : l; //双等号 我傻逼了 31 r = i == len-1 || str[i+1] == ‘ ‘ ? i : r; 32 } 33 if(l != -1 && r != -1){ 34 reverse(str,l,r); 35 l = -1; 36 r = -1; 37 } 38 } 39 cout<<str<<endl; 40 41 return 0; 42 }
补充: 对于一个字符串 ABCDE 给出一个size=3 ------------> DEABC 先对[0,size-1]翻转 再对[size,len-1]翻转 最后整体翻转
标签:cst iostream 笔试 name string abc ring class dea
原文地址:https://www.cnblogs.com/znshao/p/11450038.html