锻炼:
诗文(每行不超过 80 个字符)有四行小写。把它写成一个“梯形图”(每行一个单词),在每个四行诗之后插入一个空行。
我的代码:
#include "stdafx.h"
#include <iostream>
#include <string>
#include "conio.h"
using namespace std;
size_t LengthOfUtf8String(const std::string &utf8_string) {
return distance(utf8_string.begin(), utf8_string.end());
}
int main(int argc, const char* argv[])
{
char sub;
int i = 0, n = 0;
string a[80];
string s;
system("CLS");
cout << "Input str" << endl;
cin >> s;
do {
i += 1;
if ((s[i] == ' ') || (s[i] == ',')) {
n += 1;
a[n] = sub;
sub = ' ';
}
else sub = sub + s[i];
} while (!(i == LengthOfUtf8String(s)));
n += 1;
a[n] = sub;
cout << endl;
for (i = 1; i <= n; i++)
{
if (i % 4 == 1) cout << a[i] << endl;
if (i % 4 == 2) cout << ' ' << a[i] << endl;
if (i % 4 == 3) cout << " " << a[i] << endl;
if (i % 4 == 0) {
cout << " " << a[i] << endl;
cout << endl;
}
}
system("pause");
}
问题:我做错了什么?以及应该如何正确完成?
如果文本仅由用户输入并且结果仅显示在屏幕上,那么您可以这样做:
如果是俄语,我们一次读一个单词,并在每个后续单词之前插入一个缩进。
如果突然必须读取该行,并且必须在输出之前将结果保存到一行,那么我们可以将整个事情概括一下:
例子