题解 | #字符串变形#
字符串变形
https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e
/**
*
* @param s string字符串
* @param n int整型
* @return string字符串
*/
//逆序函数
void reverse(char* left,char* right)
{
while (left<right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
char* trans(char* s, int n ) {
// write code here
char* left = s;//数组名是首元素地址
int len = strlen(s);
char* right = &s[(strlen(s) - 1)];
reverse(left,right);//先将整个字符串逆序
//将每个单词逆序
char* start = s;
while (*start)
{
char* end = start;
while (*end != ' ' && *end != '\0')
{
end++;
}
reverse(start,end-1);
if (*end != '\0')
end++;
start = end;
}
//逆序完成后,改变字母大小写
//大小写字母ASCII值相差32:小写 = 大写 + 32;
int i= 0;
for(i=0;i<n;i++)
{
if(s[i] != ' ')
{
if(s[i]>='a' && s[i]<='z')
{
s[i] = s[i] - 32;
}
else
{
s[i] = s[i] + 32;
}
}
}
return s;
}


查看11道真题和解析