後,陣列沒有修改我在C++中遇到了一些指標問題。我已經編寫了哪個調用函數 - 它的任務是在包含在數組中的c-string之前添加c-string「UWAGA:」(該地址作爲參數發送)。如果該c字符串的長度大於製表符大小,它應該更改'。'上的最後三個符號。標誌。 它試圖打印twsk指針,但它不修改tab []內容。 BTW。在我的功能裏面,當我打印w指示符時,它只顯示主要的c字符串。有人能告訴我爲什麼它不修改我的標籤數組?使用指標
PS。對不起我的英語不好。
#include <iostream>
#include <cstring>
using namespace std;
char * dopisywacz(char *w, int size);
int main()
{
\t int size = 50;
\t char tab[size] = {"jakis c-string."};
\t
\t cout << dopisywacz(tab, size) << endl;
\t
}
char * dopisywacz(char *w, int size)
{
\t char *poczatek = w;
\t char str[] = {"UWAGA: "};
\t int dlugosc = strlen(w);
\t char temp[size];
\t char *twsk = temp, *tpocz = twsk;
\t
\t int counter = 7;
\t
\t for (int i = 0; i < 7; i++)
\t {
\t \t *twsk++ = str[i];
\t }
\t while(*temp)
\t {
\t \t *twsk++ = *w++;
\t \t counter++;
\t \t
\t \t if (counter == size)
\t \t {
\t \t \t *twsk -= 4;
\t \t \t for (int i = 0; i < 3; i++)
\t \t \t {
\t \t \t \t *twsk++ = '.'; \t
\t \t \t } \t
\t \t \t break;
\t \t } \t
\t } \t
\t *twsk = 0;
\t
\t twsk = tpocz;
\t while (*(w) = *(twsk))
\t {
\t \t w++;
\t \t twsk++;
\t }
\t w = poczatek;
\t return w;
}
沒有任何理由,爲什麼你的arent使用'STD :: string'? – user463035818
拉瑪,你能告訴更多你的意思嗎?對不起,我是C++的初學者,我不知道如何使用指標。 – maniekoo
tobi303,我不使用namespace std ::因爲make代碼更容易。這是一個簡短的程序,所以我認爲沒有可能與圖書館名稱爭論。 – maniekoo