[問題] 字串倒轉 - 只倒轉母音

看板C_and_CPP (C/C++)作者 (EngRookie)時間10年前 (2016/05/11 14:42), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串1/3 (看更多)
大家好,小弟又來打擾各位,小弟有兩個問題如下: 1. 在不新增副函式的引數 char *returnStr 是否有其他辦法 return 字串回去? 2. 我的 malloc 是建立在副函式裡面並且在最後 return 回去,我該如何 free(pointer)呢? 程式碼如下: #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <stdbool.h> bool isVowels(char *s) { if (s >='A'&& s <='Z') s += 'a' - 'A'; return s == 'a' || s == 'e' || s == 'i' || s == 'o' || s == 'u'; } char* reverseVowels(char* s, char *returnStr) { int L = 0, R = strlen(s) - 1; char tempChar = '0'; char *Array = (char *)malloc(strlen(s)*sizeof(char)); for (int i = 0; i < strlen(s); i++) Array[i] = *(s + i); while (L < R) { while (!isVowels(Array[L])) L++; while (!isVowels(Array[R])) R--; if (L < R) { tempChar = Array[L]; Array[L] = Array[R]; Array[R] = tempChar; } L++; R--; } *(Array + strlen(s)) = '\0'; return returnStr = Array; } int main(int argc, char* argv[]) { char *returnStr = '0'; returnStr = reverseVowels("Hello", returnStr); printf("returnStr = %s\n", returnStr); returnStr = reverseVowels("LeetCode", returnStr); printf("returnStr = %s\n", returnStr); system("pause"); return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.255.38 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1462948924.A.DA5.html

05/11 15:00, , 1F
reference?
05/11 15:00, 1F
文章代碼(AID): #1NCjGysb (C_and_CPP)
文章代碼(AID): #1NCjGysb (C_and_CPP)