字符串倒置函數(shù)的實(shí)現(xiàn),需要我們?cè)诤瘮?shù)中使用left、right分別定位字符串的起點(diǎn)、末點(diǎn),因此我們傳參時(shí)需要字符串的首地址(str)、字符串的長(zhǎng)度(len),將這兩個(gè)位置的字母互換,然后讓left++到字符串下一個(gè)地址,right–到字符串末尾的上一個(gè)地址,一直重復(fù)互換操作,直到不滿足left< right,即可實(shí)現(xiàn)字符串倒置
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到襄州網(wǎng)站設(shè)計(jì)與襄州網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋襄州地區(qū)。遞歸與非遞歸解法大體的思路是相似的,只不過(guò)遞歸解法中需要考慮如何進(jìn)行l(wèi)eft和right的更新,以此逼近遞歸條件。
非遞歸解法#incldue#includevoid reverse(char* str, int len)
{char* left = str;
char* right = str + len - 1;
while (left< right)
{char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
遞歸解法char* reverse(char* str, int len)
{if (*str == '\0') //判斷空串
{return NULL;
}
if (len >1)
{char tmp = *str;
*str = *(str + len - 1);
//下一次進(jìn)入函數(shù)時(shí)讓最后一個(gè)字母暫時(shí)置為\0,傳str + 1
//也就完成了left++; right--; 的操作
*(str + len - 1) = '\0';
reverse(str + 1);
//最后再把置為\0的字母,重復(fù)賦值
*(str + len - 1) = tmp;
}
return str;
}
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧