在C++語言中,句子中的詞是倒置的,單詞之間倒置,標點符號不會倒置,本文是武林技術頻道小編為大家分享的詳解C++實現單詞進行倒置的方法,希望對你學習這方面知識有幫助!
C常見的庫函數有:
?
int? strstr(const char* string,const char* substring)?? 用于返回主串中子串的位置以后的所有字符。比如主串是“123456789”,子串是“234”,則返回“23456789”。
char*?? strcpy(char* DestStr,const char* SrcStr)?? 復制字符串函數??
int??? strcmp(const char* str1,const char* str2)??? 比較兩個字符串??
char*? strcat(char* destStr,const char* srcStr)????? 連接字符串??
沒有太合適題意的庫函數,因此想辦法不用庫函數,自己進行倒置。下面的是自己的實現,不足之處,還望指正?。?!
?
?
?
#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;
?//先將字符串進行全部倒轉 變成 .nijnaiT morf emoc I
?while (j > i)
?{
??temp = str[i];
??str[i] = str[j];
??str[j] = temp;
??j --;
??i ++;
?}
?cout << " string = " << str << endl;
?//然后進行按單詞部分反轉,遇到空格,則判斷出一個單詞結束
?i = 0;
?while (str[i])
?{
??if (str[i] != ' ')
??{
???begin = i;
???while (str[i] && str[i] != ' ')
???{
????end = i;
????i++;
???}
???if (str[i] == '/0') //字符串的結束符
???{
????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++實現單詞進行倒置的方法,想要學習編程知識的同學,可以多多關注武林技術頻道網,武林技術頻道網值得您選擇。