回覆列表
  • 1 # 使用者6714470155983

    要返回字串 需要返回char*型別

    需要注意的是 返回的字串 不能是該函式的區域性變數,否則會導致出錯

    可以是引數字串,全域性變數,靜態區域性變數,或者動態分配的記憶體

    比如

    char *my_str_cpy(char *d, char *s)

    {

    char *p=d;

    while(*p++=*s++);

    return d;//返回引數字串。

    }

  • 2 # 使用者1648875641519668

    COM元件必須使用BSTR返回字串,不能使用char*。所以,你首先必須要獲取到BSTR的結果,再進行轉換。BSTR可以當寬字串使用,假設你的BSTR變數是bstr,那麼最簡單的轉換方式就是:CStringA strA(bstr);strA就是多位元組的CString,轉換為char*就很容易了

  • 3 # lzony32554

    老大,你程式碼寫得有問題,首先你先確定是字串指標,而不是指標陣列char*p[127];char*str[127];這兩行都有問題char*GetString(char*str){char*strp=NULL;//先定義一個字串指標charx[127];printf("%s",str);scanf("%s",&x);strp=x;//將指標指向這個新分配的字串記憶體地址returnstrp;//這樣就能返回字串指標了}intmain(){char*p;//既然你的函式返回的是char*,此處當然要定義為char*charstr[127];scanf("%s",&str);p=GetString(str);printf("%s",p);}

  • 4 # 使用者1772032540546339

    要字串第字元址返相於返整字串我知道char陣列名字字串第字元址char*p="study"*/#include<iostreamusingnamespacestd;char*get(char*str);//字串第字元址返相於返整字串所返值指標儲存陣列第字元址intmain(){charc[10];char*ch;cout<<"請輸入您名字";cinc;ch=get(c);//陣列cout<<"您名字"<<ch<<endl;delete[]ch;//由於ch指向函式p,刪除陣列能忘記寫[],否則刪除首址ch=get("Jack");//"Jack"未命名字串cout<<"您名字"<<ch<<endl;delete[]ch;//由於ch指向函式p,刪除陣列能忘記寫[],否則刪除首址char*ch1="Mike";ch=get(ch1);//"ch1"未命名字串cout<<"您名字"<<ch<<endl;delete[]ch;//由於ch指向函式p,刪除陣列能忘記寫[],否則刪除首址

  • 中秋節和大豐收的關聯?
  • pci記憶體控制器感嘆號?