【发布时间】:2023-04-02 05:49:01
【问题描述】:
我正在尝试编写一个程序,将字符串拆分为二维数组token[100][100]。它将整个字符串拆分为单独的单词,但每次遇到句号时都应该token[i++][j]。到目前为止,我有这个。
#include <iostream>
#include <istream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
string code;
getline(cin, code);
string codef[100];
string token[100][100];
int j = 0, i=0;
for (i = 0; i < 2; i++) {
stringstream ssin(code);
while (ssin.good() && j < 4) {
ssin >> token[i][j];
++j;
if (token[i][j] == ".") {
break;
}
}
}
for (i = 0; i < 4; i++) {
for (j = 0; j < 4; j++) {
cout << token[i][j] << endl;
}
cout << endl;
}
return 0;
}
我这样做的方式要求您在句点之前放置一个空格,因为它会检查单独的字符串,如果您像这样将句点捆绑在一起:“你好。”它显然不会识别它。我不希望这种情况发生,有没有更好的方法来完成这项工作?现在我将字符串限制为只有 2 个句子和每个句子 4 个单词,包括句点,所以从技术上讲,只有 3 个单词然后是句点。
【问题讨论】: