反转单词(C)

2018-09-12  本文已影响0人  陈_振

基于上一篇的反转字符串


void reverseString(char *str, int start, int end) {
    
    while (start < end) {
        // 交换前后两个字符,同时移动指针
        char temp = str[start];
        str[start] = str[end];
        str[end] = temp;
        
        start++;
        end--;
    }
}



void reverseWords(char *str) {
    if (str == NULL) {
        return;
    }
    
    int start = 0;
    int strLength = (int)strlen(str);
    
    // 将字符串整体反转
    reverseString(str, 0, strLength - 1);
    
    for (int i = 0; i < strLength; i++) {
        
        if (i == strLength - 1 || str[i+1] == *" ") {
            reverseString(str, start, i);
            start = i + 2;
        }
    }
    
    return;
}
上一篇下一篇

猜你喜欢

热点阅读