[問題] 字串倒轉 - 只倒轉母音
看板C_and_CPP (C/C++)作者EngRookie (EngRookie)時間10年前 (2016/05/11 14:42)推噓1(1推 0噓 0→)留言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
05/11 15:00, 1F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章