c语言字符串倒置,单词倒置,用C++实现,将一句话里的单词进行倒置的方法详解
用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
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语言字符串倒置,单词倒置,用C++实现,将一句话里的单词进行倒置的方法详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言复数的运算实验报告,C语言复数的运
- 下一篇: 10玩rust_C++工程师的Rust迁