题解 | #字符串变形#

字符串变形

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-04 19:05
已编辑
东莞城市学院 单片机
不知道怎么取名字_:你这个要实习两年?哪有这么久的,感觉就是即使你毕业了,但还按实习的话,是不是不用给你缴社保公积金啥的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务