使用 string 类型输入一个英文语句,试编写一个函数提出语句中的所有单词,并在main 函数中输出所有单词,要求每行输出一个单词。
分析:
用户输入一句英文句子,分割出每个单词输出。
分割函数实现,返回值vector<string>?用于存放每个单词
const string& str:待分割字符串
const string& Pattern:分割字符
关键函数:strtok
具体代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
#include "stdafx.h" #include <vector> #include <iostream> #include <string> using namespace std; typedef vector<string> VecString; VecString split(const string& str, const string& Pattern) { char* strc = new char[str.length() + 1]; strcpy(strc, str.c_str()); VecString ResultVecStr; char* tmpStr = strtok(strc, Pattern.c_str()); while (tmpStr != NULL) { ResultVecStr.push_back(string(tmpStr)); tmpStr = strtok(NULL, Pattern.c_str()); } delete[] strc; return ResultVecStr; } void printf(const VecString& VecStr) { for (size_t i= 0; i < VecStr.size(); i++) { cout << VecStr[i] << endl; } } int main() { cout << "请输入一句英文" << endl; string str; getline(cin, str); VecString VecStr = split(str, " ,"); cout << "输出分割后得到的单词" << endl; printf(VecStr); system("pause"); return 0; } |
运行结果: