python输入一个英文句子、翻转句子中单词的顺序_ODOA(1) 翻转句子中单词的顺序(C语言实现)...
動動手才發現自己現在的在C/C++方向的幾個問題:
對自己的入門語言C語言變得非常陌生
編程的思維固定在找既有的方法,主要原因是python寫多了,基本上所有常見的問題,都有現成的方法,讓自己變得懶惰了
對C++的實際應用不熟練,雖然一直在看C++相關的東西,但是實戰經驗還是太少,在后面會更多的使用C++來實現一些算法
由于python 的鏈表,字典設計的非常方便,所以在數據結構方面也缺乏訓練和提高
今天先做一個簡單的問題。
問題描述:
翻轉句子中單詞的順序
輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字符的順序不變。句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理
例如:輸入“I am a student.”,則輸出“student.a am I”。
/*
Name: reverse.h
Author: suzhou
Date: 2014.02.12
Num. 1
*/
#include"stdio.h"
#include"string.h"
void reverseStr(char* str, int i, int j);
void reverseWords(char* str);
/*
File: wordsreverse.c
Author: suzhou
Date: 2014.02.12
Num. 1
Question:
翻轉句子中單詞的順序。
題目:輸入一個英文句子,翻轉句子中單詞的順序,但單詞內字符的順序不變。
句子中單詞以空格符隔開。為簡單起見,標點符號和普通字母一樣處理。
例如輸入“I am a student.”,則輸出“student.a am I”。
*/
#include"reverse.h"
/* 字符串反轉
*/
void reverseStr(char* str, int i, int j)
{
for (; i < j; i++, j--)
{
char tmp;
tmp = str[i];
str[i] = str[j];
str[j] = tmp;
}
return ;
}
/* 句子反轉
*/
void reverseWords(char* str)
{
int i = 0;
char* subStrStart;
char* subStrEnd;
char* currentPos;
currentPos = str;
while(*currentPos!='\0')
{
subStrStart = currentPos;
while(*currentPos!=' ' && *currentPos!='\0')
currentPos++;
subStrEnd = currentPos - 1;
reverseStr(str, (int)(subStrStart - str), (int)(subStrEnd - str));
currentPos++;
}
return;
}
int main()
{
char str[20] = "I am a student.";
reverseStr(str, 0, strlen(str)-1 );
reverseWords(str);
printf("%s\n", str);
return 0;
}
不要認為實現這類基礎算法是“重復造車輪”,能說這句話的前提條件是自己有造車輪的能力。好好打牢基礎才是現階段的關鍵任務。
總結
以上是生活随笔為你收集整理的python输入一个英文句子、翻转句子中单词的顺序_ODOA(1) 翻转句子中单词的顺序(C语言实现)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python多态_多态是什么?为什么要使
- 下一篇: python paramiko sftp