教育行業(yè)A股IPO第一股(股票代碼 003032)

全國(guó)咨詢(xún)/投訴熱線:400-618-4000

c/c++培訓(xùn)之交換兩個(gè)字符串

更新時(shí)間:2016年08月01日10時(shí)00分 來(lái)源:傳智播客C/C++學(xué)科 瀏覽次數(shù):

換兩個(gè)字符串

簡(jiǎn)單介紹一下字逆轉(zhuǎn)字符串的原理。
 
如上圖所示,要逆轉(zhuǎn)一個(gè)字符串,我們首先用兩個(gè)char *指針指向字符串的開(kāi)頭和結(jié)尾,假設(shè)這兩個(gè)指針?lè)謩e為pbegin和pend,然后交換這兩個(gè)指針指向的字符,之后pbegin向前移動(dòng)一個(gè)位置,pend向后移動(dòng)一個(gè)位置,直到pbegin不小于pend,則字符串逆轉(zhuǎn)結(jié)束。
對(duì)應(yīng)代碼如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int str_reverse(char *str)
{
int ret = 0;
char *pbegin = NULL;
char *pend = NULL;
if (str == NULL)
{
ret = -1;
return ret;
}
 
pbegin = str; //pbegin指向字符串的開(kāi)頭
pend = str + strlen(str) - 1; //pend指向字符串的結(jié)尾
 
while (pbegin <= pend)
{
//交換pbegin和pend指向的字符
char ch = *pbegin;
*pbegin = *pend;
*pend = ch;
 
pbegin++; //pbegin向前移動(dòng)一個(gè)位置
pend--; //pend向后移動(dòng)一個(gè)位置
}
 
return ret;
}
 
int main(void)
{
char str[] = "tsacti";
 
str_reverse(str);
printf("reverse:%s\n", str);
 
return 0;
}
結(jié)果如下:
 

本文版權(quán)歸傳智播客C++培訓(xùn)學(xué)院所有,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明作者出處。謝謝!
作者:傳智播客C/C++培訓(xùn)學(xué)院
首發(fā):http://m.fskzgqt.cn/c/ 
0 分享到:
和我們?cè)诰€交談!