用C++實現(xiàn),將一句話里的單詞進行倒置的方法詳解
更新時間:2013年05月29日 08:54:22 作者:
本篇文章是對用C++實現(xiàn),將一句話里的單詞進行倒置的方法進行了詳細的分析介紹,需要的朋友參考下
用C++語言實現(xiàn),將一句話中的單詞進行倒置(單詞之間倒轉(zhuǎn),單詞本身不倒置),標點符號不導致。比如一句話“I come from tianjin. “,倒置后變成“tianjin. from come I ”。
C常見的庫函數(shù)有:
int strstr(const char* string,const char* substring) 用于返回主串中子串的位置以后的所有字符。比如主串是“123456789”,子串是“234”,則返回“23456789”。
char* strcpy(char* DestStr,const char* SrcStr) 復制字符串函數(shù)
int strcmp(const char* str1,const char* str2) 比較兩個字符串
char* strcat(char* destStr,const char* srcStr) 連接字符串
沒有太合適題意的庫函數(shù),因此想辦法不用庫函數(shù),自己進行倒置。下面的是自己的實現(xiàn),不足之處,還望指正?。?!
#include "stdafx.h"
#include <iostream>
using namespace std;
char *strReverse(char * sourcestr)
{
int j = 0, i = 0,begin,end;
char *str = sourcestr;
char temp;
j = strlen(str) - 1;
cout << " string = " << str << endl;
//先將字符串進行全部倒轉(zhuǎn) 變成 .nijnaiT morf emoc I
while (j > i)
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
j --;
i ++;
}
cout << " string = " << str << endl;
//然后進行按單詞部分反轉(zhuǎn),遇到空格,則判斷出一個單詞結(jié)束
i = 0;
while (str[i])
{
if (str[i] != ' ')
{
begin = i;
while (str[i] && str[i] != ' ')
{
end = i;
i++;
}
if (str[i] == '\0') //字符串的結(jié)束符
{
i--;
}
}
while (end > begin)
{
temp = str[begin];
str[begin] = str[end];
str[end] = temp;
end --;
begin ++;
}
i ++;
}
cout << " string = " << str << endl;
return str;
}
int _tmain(int argc, _TCHAR* argv[])
{
char str[] = "I come from Tianjin.";
strReverse(str);
return 0;
}
C常見的庫函數(shù)有:
復制代碼 代碼如下:
int strstr(const char* string,const char* substring) 用于返回主串中子串的位置以后的所有字符。比如主串是“123456789”,子串是“234”,則返回“23456789”。
char* strcpy(char* DestStr,const char* SrcStr) 復制字符串函數(shù)
int strcmp(const char* str1,const char* str2) 比較兩個字符串
char* strcat(char* destStr,const char* srcStr) 連接字符串
沒有太合適題意的庫函數(shù),因此想辦法不用庫函數(shù),自己進行倒置。下面的是自己的實現(xiàn),不足之處,還望指正?。?!
復制代碼 代碼如下:
#include "stdafx.h"
#include <iostream>
using namespace std;
char *strReverse(char * sourcestr)
{
int j = 0, i = 0,begin,end;
char *str = sourcestr;
char temp;
j = strlen(str) - 1;
cout << " string = " << str << endl;
//先將字符串進行全部倒轉(zhuǎn) 變成 .nijnaiT morf emoc I
while (j > i)
{
temp = str[i];
str[i] = str[j];
str[j] = temp;
j --;
i ++;
}
cout << " string = " << str << endl;
//然后進行按單詞部分反轉(zhuǎn),遇到空格,則判斷出一個單詞結(jié)束
i = 0;
while (str[i])
{
if (str[i] != ' ')
{
begin = i;
while (str[i] && str[i] != ' ')
{
end = i;
i++;
}
if (str[i] == '\0') //字符串的結(jié)束符
{
i--;
}
}
while (end > begin)
{
temp = str[begin];
str[begin] = str[end];
str[end] = temp;
end --;
begin ++;
}
i ++;
}
cout << " string = " << str << endl;
return str;
}
int _tmain(int argc, _TCHAR* argv[])
{
char str[] = "I come from Tianjin.";
strReverse(str);
return 0;
}
相關(guān)文章
C語言strlen,strcpy,strcmp,strcat,strstr字符串操作函數(shù)實現(xiàn)
這篇文章主要介紹了C語言strlen,strcpy,strcmp,strcat,strstr字符串操作函數(shù)實現(xiàn),,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下2022-09-09
C語言多種方法實現(xiàn)一個函數(shù)左旋字符串中K個字符
這篇文章主要為大家介紹了C語言多種方法實現(xiàn)一個函數(shù),可以左旋字符串中K個字符,文中附含詳細的示例講解,有需要的朋友可以借鑒參考下2021-10-10
Linux下使用C/C++進行UDP網(wǎng)絡(luò)編程詳解
UDP 是User Datagram Protocol 的簡稱,中文名是用戶數(shù)據(jù)報協(xié)議,是一種無連接、不可靠的協(xié)議,本文主要介紹了如何在Linux下使用C/C++進行UDP網(wǎng)絡(luò)編程,有需要的可以了解下2024-10-10
詳解C語言 三大循環(huán) 四大跳轉(zhuǎn) 和判斷語句
這篇文章主要介紹了詳解C語言 三大循環(huán) 四大跳轉(zhuǎn) 和判斷語句的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-07-07
Qt掃盲篇之QRegularExpression正則匹配總結(jié)
QRegularExpression是Qt5.0引進的,修復了很多bug,提高了效率,使用時建議使用QRegularExpression,下面這篇文章主要給大家介紹了關(guān)于Qt掃盲篇之QRegularExpression正則匹配的相關(guān)資料,需要的朋友可以參考下2023-03-03

