//思路:首先创建一个新的字符串 //从后往前遍历s字符串,一旦碰到空格就将空格后面的字符存入到str字符串中 //依次往复,直到存放到最前面一个单词为止 //将最前面的单词存放进去 //最后将str拷贝到s中 //返回s即可 /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @param n int整型 * @return string字符串 */ char* trans(char* s, int n ) { // write code here char str[n+1]; int k = 0; //前面单词的情况 int i = 0; for (i = n - 1; i >= 0; i--) { if (s[i] == ' ') { int j = 0; for (j = i+1; j < n; j++) { if (s[j] == ' ') break; else str[k++] = s[j]; } str[k++] = ' '; } } //最前面一个单词的情况 for (i = 0; i < n; i++) { if (s[i] == ' ') break; else str[k++] = s[i]; } str[n] = '\0'; //将str中的大写转小写 for (i = 0; i < k; i++) { if (str[i] >= 'a' && str[i] <= 'z') { str[i] = str[i] - 32; } else if (str[i] >= 'A' && str[i] <= 'Z') { str[i] = str[i] + 32; } } strcpy(s, str); return s; }