题解 | #字符串变形#

字符串变形

https://www.nowcoder.com/practice/c3120c1c1bc44ad986259c0cf0f0b80e

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @param n int整型 
 * @return string字符串
 */
char* trans(char* s, int n ) {
    // write code here
    char p[n];
    int i=0;
    int j=n;
    //大小写转换,逆序输入到p
    while(i<j){
        if(s[i]!=' '){
            if(s[i]>=65&&s[i]<97){
                s[i]+=32;
            }else{
                s[i]-=32;
            }
           
        }
        p[--n]=s[i];
        i++;
    }
    //字符串最后一个字符是'\0'
    p[j]=s[j];
    
    int b=j;
    i=j-1;
    while(i>-1){//从字符串末尾开始遍历,遇到空格开始赋值
        
        if(p[i]==' '){//遇到空格就将空格前的字符逆序输入到s对应位置
            int a=i;
            int num=a;
            
            
            while(a<b){
                 
                s[a]=p[b-a+num];//将空格前字符逆序输入
                a++;
            }
            b=i;
            s[i]=p[i];//对应位置空格赋值
        }
        i--;
    }
    printf("\n%s",s);
    //i=0;
    //最后一个空格及后面的赋值
    while(i<b){
        i++;      
        s[i]=p[b-i-1]; 
            }
        s[b]=p[b];
    return s;
}

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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