我需要寫一個遞歸函數這就是得到一個字符串,然後只打印字母(captial &小)從年底開始遞歸處理字符串
for exemple:
str={"abc123#@!456DEF&^65gHj"}
Reducing(str);
output: jHgFEDcba .
,但即時通訊停留在如何獲得的部分在功能轉到下一個字符 所有我能做的就是打印的最後一個字符和多數民衆贊成IM卡......請幫助
here's my code:
void Reducing(char str[])
{
if (str[0] == '\0')
return ;
if ((str[strlen(str)-1] <= 122 && str[strlen(str)-1] >= 97) || (str[strlen(str)-1] <= 90 && str[strlen(str)-1] >= 65))
putchar(str[strlen(str)-1]);
Reducing(str+(strlen(str)));
}
你可以做一個簡單的版本,這是剛剛反轉字符串是什麼?然後修改它以過濾。並提示:它不應該是尾遞歸(嗯,它可以,但是你忽略了這一點)。 –
不要在每次迭代時嘗試計算'strlen'。每次迭代只需移動一個角色,然後放鬆一下。 –
使用'isalpha()'會更乾淨,並刪除幻數。 –