国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

用C++實現,將一句話里的單詞進行倒置的方法詳解

2020-01-26 16:04:33
字體:
來源:轉載
供稿:網友
用C++語言實現,將一句話中的單詞進行倒置(單詞之間倒轉,單詞本身不倒置),標點符號不導致。比如一句話“I come from tianjin. “,倒置后變成“tianjin. from come I ”。
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;
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 济阳县| 秭归县| 弥勒县| 宁都县| 军事| 青海省| 潮安县| 望奎县| 成都市| 夹江县| 开阳县| 铜山县| 嘉定区| 泊头市| 扎鲁特旗| 建始县| 大宁县| 渑池县| 阿克苏市| 冷水江市| 曲阜市| 浮山县| 太和县| 聂荣县| 抚宁县| 延庆县| 平遥县| 桦甸市| 翁牛特旗| 霸州市| 故城县| 宝鸡市| 丰顺县| 铁力市| 彰化县| 清水河县| 桦南县| 清水河县| 淮安市| 年辖:市辖区| 安远县|