因此,這裏是我的代碼:如何在C++中間隔strcat?
#include <iostream>
#include <string.h>
using namespace std;
const int MAX_SIZE1 = 20;
const int MAX_SIZE2 = 10;
int main()
{
char a[MAX_SIZE1][MAX_SIZE1][MAX_SIZE2];
int n, i, j;
cin >> n;
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
cin >> a[i][j];
char s[MAX_SIZE1 * MAX_SIZE1 * (MAX_SIZE2 - 1) + 1];
int hor = 0, vert = 0;
while (hor < n/2 && vert < n/2)
{
for (i = vert; i < n - vert; i++)
strcat(s, a[hor][i]);
for (i = hor + 1; i < n - hor; i++)
strcat(s, a[i][n - vert - 1]);
for (i = n - vert - 2; i >= vert; i--)
strcat(s, a[n - hor - 1][i]);
for (i = n - hor - 2; i > hor; i--)
strcat(s, a[i][vert]);
hor++;
vert++;
}
if (n % 2)
for (i = vert; i < n - vert; i++)
strcat(s, a[hor][i]);
else
for (i = hor; i < n - hor; i++)
strcat(s, a[i][vert]);
cout << s << endl;
return 0;
}
我有一些問題。如何修改它以便在輸出的字符串中的單詞之間獲得間隔?以及如何擺脫我的輸出開頭的尷尬的50行(字面上)奇怪的符號?
編輯:對不起。認爲這並不重要。輸入應該是最多20x20的單詞,每個單詞不要超過9個字符。輸出應該是一個s字符串,它表示通過從左上角開始以順時針方向讀取數組形成的句子。問題是..我在輸出開始時得到了奇怪的符號,並且在單詞之間沒有間隔。
請提供具體的輸入和預期的輸出。我們無法輸入20x20x10次來測試您的程序。 – herohuyongtao
在C++中,你會使用'std :: string'而不是這個C風格的亂碼。 –
我編輯了我原來的帖子。抱歉。 – user3213110